docker+jenkins+github实现golang项目自动部署

K8S 上部署 jenkins[go的持续集成] 这里 jenkins 使用的存储为 NFS 安装 nfs 工具 yum install nfs-common nfs-utils -y showmount -e 192.168.52.174 # 运行结果 Export list for 192.168.52.174: /nfs/jenkins * 创建 nfs-client-provisioner deployment cat nfs-client-provisioner.yaml kind: Deployment apiV... 阅读详情

本文jenkins部署golang项目流程

  1. jenkins服务拉取github上的项目
  2. 构建golang项目并生成docker镜像[jenkins调用的是宿主机上的docker环境,如何调用的,后面会说明]
  3. 启动golang项目的docker镜像

docker的安装这里就不说了

docker安装jenkins

Makefile

run:
	docker run \
	-u root \
	-d \
	-p 8088:8080 \
	-p 50000:50000 \
	-e TZ="Asia/Shanghai" \
	-v /Users/chen/data/docker/jenkins:/var/jenkins_home \
	-v /var/run/docker.sock:/var/run/docker.sock \
	-v /usr/local/bin/docker:/usr/bin/docker \
	--name jenkins \
	jenkins/jenkins:lts

说明:
-v /Users/chen/data/docker/jenkins:/var/jenkins_home 挂载jenkins的home目录,jenkins安装的插件,拉取的项目代码都在这个目录里
-v /var/run/docker.sock:/var/run/docker.sock与-v /usr/local/bin/docker:/usr/bin/docker 挂载这两个文件就能在docker容器内访问宿主机上的docker。官方文档里有说明

执行make来安装jenkins

make run
  1. 安装后访问 http://127.0.0.1:8088/login
    image.png
  2. 获取登录密码
docker exec -it jenkins cat /var/jenkins_home/secrets/initialAdminPassword
  1. 选择“选择插件来安装”[ 插件安装很慢,参考 Jenkins安装插件提速]
    image.png
  2. 选择插件

Localization: Chinese (Simplified)
Docker
Github
Go
SSH

  1. 添加凭据[Jenkins>凭据>系统>全局凭据]
    用于拉取github上的代码
    需要在jenkins容器里生成ssh
# 进入容器
docker exec -it jenkins bash
# 生成ssh,一路回车就行了
ssh-keygen -t rsa
# 获取密钥,下图Private Key的值
cat ~/.ssh/id_rsa
# 获取公钥,加入到github的 SSH keys 里
cat ~/.ssh/id_rsa.pub

image.png

  1. 全局工具配置[Jenkins>全局工具配置]
    image.png

  2. 创建任务
    (1). 创建任务
    image.png
    (2). 设置参数与源码管理。VERSION会在构建docker容器时用到,相当项目版本号;Git> Credentialst选择第5步创建的凭据
    image.png
    (3). 构建环境与构建
    image.png
    Dockerfile

FROM alpine:latest
RUN mkdir -p /app
WORKDIR /app

ADD main /app/main

EXPOSE 9999

CMD ["./main"]
cd $WORKSPACE

export GOPROXY=https://goproxy.io

go mod tidy
# 打印依赖,部署成功后查看版本依赖是否如预期
cat ./go.mod

cd ./app/test/http
# linux环境编译
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o main
# 构建docker镜像,项目中需要在当前目录下有dockerfile,否则构建失败
docker build -t qicmsg/test/demo:$VERSION .
rm -rf main
docker rm http_test -f
docker run --name http_test -p 9999:9999 -d qicmsg/test/demo:$VERSION
  1. 开始构建项目
    image.png
    到这里整体流程就走完了。docker container ls 就能看到刚启动的容器了。

注:在实际中,通常是jenkins是一台服务器,运行golang项目的是一台独立的服务器(集群可以用k8s来部署)。在jenkins构建项目后,构建docker镜像docker build 并提交到docker仓库docker push。然后在7.(3)步的构建后操作通过ssh来执行远端命令部署项目

Go 应用的部署与运维全攻略:让你的 Go 程序快速上线(十五) 在现代的应用开发中,部署和运维是开发工作的重要组成部分。如果你正在使用 Go 来开发应用程序,那么你就会发现,Go 在部署和运维方面有着非常简洁和高效的特性。无论是编译、打包、使用 Docker,还是 CI/CD 的自动化构建与部署,Go 都提供了非常强大的支持。本篇博客将带你深入了解如何部署和运维 Go 应用,从编译到 Docker 化,再到自动化构建与部署,所有的知识你都能学到! 阅读详情

相关推荐

Jenkins与GitHub自动化部署实战:从零搭建CI/CD流水线

持续集成与持续部署(CI/CD)是现代软件开发的核心实践,旨在通过自动化流程提升软件交付的效率与质量。其核心原理在于将代码集成、构建、测试和部署等环节串联成一条自动化流水线,从而减少人工干预,实现快速、可靠的软件发布。在技术实现上,Jenkins作为一款开源的自动化服务器,凭借其强大的插件生态和灵活的流水线定义能力,成为构建CI/CD系统的热门选择。结合GitHub等代码托管平台,开发者可以轻松实现代码提交后自动触发构建与部署。本文将以Jenkins和GitHub为核心,深入探讨如何利用Docker容器化部

weixin_29698641的博客 296

jenkins配置golang 代码工程自动发布

以前go工程都是在我mac上打包成镜像然后再推到我的docker hub上去,每次更新都要经过打包->推送到dockert仓库->目前服务重新拉取容器;最近项目代码量很大,频繁更新,终于忍不住了,决定把jks得用起来,这样可以解放下双手。............

stefan1240的专栏 2928

ANSYS Workbench接触分析实战:从算法选择到收敛难题破解

本文深入解析ANSYS Workbench接触分析的核心技术与实战技巧,涵盖四大接触算法选择、收敛难题破解秘籍及典型场景参数设置。通过实际案例演示如何优化接触刚度、pinball区域和非对称行为等关键参数,帮助工程师有效解决结构非线性问题,提升仿真效率和精度。

weixin_28705087的博客 360

jenkins构建go项目

jenkins构建go项目

qq_46423987的博客 2028

行人重识别(ReID)基础知识入门

行人重识别(Person re-identification)主要目的是针对出现在监控摄像头内的某个目标行人,准确快速地从监控网络其他摄像头内的大量行人中将这个目标行人标识出来。如图所示一个区域有多个摄像头拍摄视频序列,ReID的要求对一个摄像头下感兴趣的行人,检索到该行人在其他摄像头下出现的所有图片。

用于记录 1万+

Python爬虫实战:从巨潮网批量抓取上市公司年报JSON数据

网络爬虫作为自动化数据采集的核心技术,其原理是通过模拟浏览器行为向服务器发送HTTP请求并解析响应,从而高效获取结构化信息。在金融数据分析领域,这项技术价值尤为突出,能够将研究人员从繁琐的手工数据收集中解放出来,聚焦于更高阶的模型构建与价值挖掘。典型的应用场景包括上市公司财务研究、市场趋势分析和风险预警系统开发。本文以Python的requests库为核心工具,详细解析如何通过分析巨潮资讯网的JSON数据接口,构建一个稳定、高效的上市公司年报数据采集管道,并重点探讨了接口逆向、分页爬取、PDF文件下载等关键

weixin_42529366的博客 1237

使用 Jenkins Pipeline 部署 Kubernetes 应用

要实现在 Jenkins 中的构建工作,可以有多种方式,我们这里采用比较常用的 Pipeline 这种方式。Pipeline,简单来说,就是一套运行在 Jenkins 上的工作流框架,将原...

DevOps持续集成的博客 1862

SillyTavern角色卡制作全攻略:如何用AI还原你喜欢的虚构角色(附三叶完整角色卡JSON)

本文详细介绍了如何使用SillyTavern制作高质量AI角色卡,以《你的名字》中的宫水三叶为例,从角色特征提取、对话风格捕捉到JSON结构优化,全面解析AI角色扮演的创作技巧。通过具体的写作示例和完整角色卡JSON,帮助二次元爱好者和同人创作者实现虚构角色的精准还原与生动互动。

pandas7gardener的博客 2138

K8s 集成 Jenkins 部署Go Web项目

K8s 集成 Jenkins 部署Go Web项目

欢迎来到风离的个人空间 2420

自动驾驶轨迹规划算法——Apollo EM Planner

Apollo EM Planner 是百度自动驾驶系统中的轨迹规划算法,采用期望-最大化(EM)迭代优化思想。其核心是将轨迹规划分解为路径优化(E-Step)和速度优化(M-Step)两个子问题,在Frenet坐标系下交替求解。算法先通过动态规划(DP)搜索粗路径,再使用二次规划(QP)进行平滑优化,并结合障碍物信息生成安全走廊。相较Lattice、Hybrid A*等规划器,EM Planner具有更好的实时性、动态障碍物处理能力和轨迹平滑性,适用于城市道路、高速公路等复杂场景。该算法通过解耦路径与速度优

swaggytiger的博客 2667

突破Cloudflare 5秒盾!Python爬虫+GPT分析JS混淆实战(附完整代码)

这篇文章的核心观点其实不是“怎么过CF”,而是如何把LLM嵌入逆向工程的工作流。AI不会取代逆向工程师,但它正在重新定义逆向工程师的工作方式。过去我们80%的时间花在读懂混淆代码上,现在这部分可以外包给GPT,我们把精力集中在架构判断、异常处理和系统设计这些真正需要人类直觉的地方。技术会变,CF的防护会升级,GPT的能力也会迭代。但这种“人机协作拆解复杂问题”的方法论,比任何具体的绕过技巧都更有长期价值。参考资料Cloudflare Bot Management官方文档。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 539

进军DevOps,Jenkins+GitHub实现自动化部署,一键上传,自动部署!

前段时间接了几个WEB项目,其实很多开发任务都不是很难,但是部署很麻烦,虽然有宝塔Linux面板这种工具,提升了不少效率,但是其实很多操作还是重复的,比如上传代码、重启nginx、重启程序等。作为一个程序员,任何一个重复超过三次的行为都是不能忍受的,虽然部署是运维的工作,但程序员不就是抢人饭吃的嘛,干脆连运维的活也干了。今天调研了一下DevOps,用Jenkins+GitHub实现了代码上传后自动部署,再也不用去宝塔面板点来点去了。......

Alex 2991

199、医疗内窥镜影像:微型镜头与高色彩保真度的ISP定制化方案

医疗内窥镜影像系统开发面临三大光学挑战:衍射极限导致分辨率下降,微型镜头色差严重,镀膜不足引发红外漏光。团队通过定制化ISP方案解决问题:采用分区色差补偿、红外泄露补偿技术,开发12区域分段颜色校正矩阵,并设计自适应伽马曲线。关键经验包括锁定白平衡避免术中偏色,优化FPGA流水线确保30fps流畅度,强调光学标定优先于算法优化。最终方案使DeltaE降至3以下,满足医生对组织颜色细微差异的识别需求,尤其解决了血管与脂肪边界辨识难题。

zzfmlxs的博客 265

Docker+Jenkins+git实现Golang项目自动部署

本文介绍了使用Docker部署Jenkins并构建Go项目的完整流程。首先通过Docker以root权限运行Jenkins容器,挂载Docker套接字和命令行工具以支持容器内使用Docker命令。然后详细说明如何编写Go项目的Dockerfile进行多阶段构建,以及配置Jenkinsfile实现自动化构建和部署流水线。最后简要提及Jenkins初始化配置、创建流水线或自由风格项目的方法。整个过程充分利用Docker技术实现环境隔离和自动化部署,为持续集成提供可靠的技术方案。

u012941592的博客 982

断层错动和近断层地震动联合作用下软岩隧洞衬砌损伤分析

摘要 本文提出了一种基于Python的软岩隧洞衬砌损伤分析系统,重点研究断层错动和近断层地震动的联合作用效应。系统采用有限元方法建立隧洞-围岩体系模型,通过非线性动力分析评估衬砌结构损伤。研究内容包括:1)建立考虑应变软化的软岩本构模型;2)基于位错理论模拟断层错动过程;3)合成具有速度脉冲效应的近断层地震动;4)开发完整的动力响应分析流程。结果表明,所提出的方法能有效评估软岩隧洞在复杂地质条件下的抗震性能,为工程设计提供理论依据。 关键词:软岩隧洞、断层错动、近断层地震动、损伤分析、Python、有限元法

max500600的博客 844

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Docker + Jenkins + Nginx 实战前端自动化部署

通过以上步骤,我们实现了一个完整的前端自动化部署流程。从代码提交到最终部署,全部由 Jenkins 自动完成,大大提高了部署效率和代码发布的可靠性。希望这篇文章能帮助你搭建自己的前端自动化部署流程。

kk_lzvvkpj的博客 861

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

docker build命令详解_使用Jenkins将项目自动部署至Docker

1.1 在GitHub上创建一个AspNet core项目(TestWeb)1.2 为项目创建Jenkins的项目(TestWeb)1.3 构建集成发布的相关配置1.3.1 基本信息1.3.2 源码管理1. 使用GitHub中项目的git路径,复制到Jenkins中的源码管理中去,如下图:2. 使用TFS发布的Git项目,相关路径:https://testweb.visualstudio.com/...

weixin_39622747的博客 772

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Jenkins+Docker+github+Vue自动化部署

一、介绍 1、Jenkins Jenkins是一个独立的开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。前身是Hudson是一个可扩展的持续集成引擎。可用于自动化各种任务,如构建,测试和部署软件。 Jenkins特点: 开源免费; 跨平台,支持所有的平台; master/slave支持分布式的build; web形式的可视化的管理页面; 安装配置超级简单; tips及时快速的帮助; 已有的200多个插件 2、do

linfen1520的博客 1501

使用Jenkins自动化部署项目

Pipeline:Pipeline 插件允许用户在 Jenkins 上创建和执行 Pipeline,它是 Jenkins 提供的一种可编排、可扩展的方法,可以自动化构建、测试和部署软件。Bamboo:Bamboo 是 Atlassian 提供的一款可扩展的 CI/CD 工具,它具有易于使用的界面和丰富的插件生态系统,支持多种构建工具和语言。TeamCity:TeamCity 是一款功能强大的 CI/CD 工具,它具有丰富的功能和易于使用的界面,支持各种构建工具和语言。

techdashen的博客 1052

Docker+Jenkins+Git实现CI/CD自动化部署全流程

持续集成与持续部署(CI/CD)是现代软件开发的核心实践,通过自动化构建、测试和部署流程显著提升交付效率。其技术原理基于版本控制系统触发自动化流水线,结合容器化技术确保环境一致性。在工程实践中,Docker提供标准化的运行环境封装,Jenkins作为自动化引擎实现流程编排,Git则保障代码版本的可追溯性。这种技术组合特别适用于需要频繁交付的微服务架构,能有效解决环境差异、手动部署错误等痛点。通过配置合理的构建策略和部署方案,团队可以实现从代码提交到生产发布的分钟级交付,同时支持蓝绿部署、金丝雀发布等高级发布

circularr9834的博客 571

在Docker container中部署Jenkins

在Docker container中部署Jenkins1、准备工作2、启动Jenkins container2.1、参数解释3、以root身份登录Jenkins container进行进一步配置3.1、将jenkins用户加入docker组3.2、确认docker.sock的权限为7774、重启Jenkins container5、创建第一个pipeline5.1、 在github.com中创建一...

weixin_45257675的博客 1050

docker 学习及jenkins安装在docker上 及allure插件的安装

Docker是基于Go语言实现的云开源项目。Docker的主要目标是“Build,Ship and Run Any App,Anywhere”,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等等)及其运行环境能够做到“一次封装,到处运行”。Linux 容器技术的出现就解决了这样一个问题,而 Docker 就是在它的基础上发展过来的。

weixin_44259638的博客 4398

RuoYi权限管理系统:5步构建Jenkins自动化部署流水线实战指南

RuoYi作为一款基于SpringBoot的轻量级Java快速开发框架,凭借其完善的权限管理系统和简洁美观的界面设计,已成为众多企业级应用的首选技术栈。本文将深入探讨如何为RuoYi项目搭建完整的Jenkins自动化部署流水线,实现从代码提交到生产环境的一键部署,显著提升开发效率和系统稳定性。通过本文的实战指南,您将掌握企业级Java项目的自动化部署最佳实践,确保您的RuoYi系统能够高效、可靠地

gitblog_00786的博客 673
上一篇: golang 用数组实现环形队列的方法
cqims21
博客等级 码龄18年 4粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值