Linux环境jenkins+gitee+docker镜像实现持续集成

本文介绍了在Linux系统下,使用Jenkins结合Docker实现代码更新后自动打包镜像到DockerHub的方法。首先需准备好运行环境,拉取Jenkins镜像并配置容器,完成首次登录配置。接着配置Gitee,下载插件并设置账户。最后创建工作流,配置shell脚本,实现代码提交更新时自动打包镜像。

提前准备安装好docker,

运行条件

4GB运行(最低1G)  

10G存储

第一步docker拉取  jenkins 镜像

docker pull jenkins/jenkins

第二步配置jenkins容器

1,创建一个文件夹来挂载jenkins文件,方便修改配置jenkins内部文件

mkdir  /var/jenkins_home

  可以修改成自己的文件夹目录 但是后面的对应参数都要修改

  开放文件夹权限

chown 777 /var/jenkins_home

2,jenkins默认是jenkins用户 给jenkins添加到docker用户组,用于jenkins运行后shell脚本对docker的命令操作

usermod -aG docker jenkins

3,docker运行一个jenkins容器

docker

run

--name jenkins-test   //容器名

-p 8888:8080          //端口号 需要外部访问需要开放端口号

-v /var/jenkins_home:/var/jenkins_home //挂载jenkins主要文件

-v /var/run/docker.sock:/var/run/docker.sock -v $(which docker):/usr/bin/docker -v /usr/lib64/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7 //jenins内部可以访问外部本机docker

-v /etc/group:/etc/group //挂载用户组

-d //后台运行

jenkins/jenkins //启动的镜像

4,运行成功之后打开浏览器登录本机IP+8888端口号配置第一次登录

1.这里的密码查看

docker ps -l

通过容器id查看日志

docker logs 9380

出现一大串信息,找到图中箭头的字符复制上去进行下一步

出现插件安装选择默认即可

插件安装可能会出错,也不用管下一步就好

配置登录用户信息

之后就一直下一步就好进入界面

5,配置Gitee,先下载Gitee插件

等待安装成功重启jenkins

配置gitee账户

在设置中找到

登录gitee获取私人令牌

生成的令牌复制填写

测试一下能不能连接成功

6,演示使用jenkins, 当gitee仓库更新将更新的项目打包镜像到dockerHub上

1.创建一个工作流

保存红框出的http路径

打开gitee中WebHook配置

点击测试就能激活jenkins进行工作,但是我们还没配置shell

点击就能收到

配置shell脚本

 

#获取当前日期

ls_date="`date +%Y%m%d`"

#拼接在一起,wwzzrr1 这个是dockerhub的用户名必须填写自己的,bryantweb_api${ls_date} 镜像名称+日期

docker_tag="wwzzrr1/bryantweb_api${ls_date}"

#先在docker本地生成一个镜像  brantService/PersonalAndAlbumService/Dockerfile dockerfile文件路径 brantService 配置文件中的上下文

docker build -t ${docker_tag} -f brantService/PersonalAndAlbumService/Dockerfile  brantService

#登录dockerhub

docker login -u xx账号xx-p xx密码xxx

#把本地镜像推到dockerhub

docker push ${docker_tag}:latest

没有dockerhub账号去dockerhub官网去创建一个就好

当每次代码进行提交更新的时候就会触发jenkins工作,进行镜像的打包

大致就这样就可以把最新的代码拉取并且发布到dockerhub中,

后期可以做用镜像做测试,部署等。

### 使用 JenkinsGitee 自动化部署 Spring Boot 项目的教程 #### 配置 Docker 安装 Jenkins 为了实现自动化部署,首先需要在本地环境中安装 Jenkins。可以利用 Docker 来快速搭建 Jenkins 的运行环境[^1]。 ```bash docker run --name jenkins-docker \ -u root \ -p 8080:8080 \ -v jenkins-data:/var/jenkins_home \ -v /var/run/docker.sock:/var/run/docker.sock \ docker.io/jenkinsci/blueocean ``` 上述命令会启动一个基于官方镜像Jenkins 实例,并将其绑定到主机端口 `8080` 上。 --- #### 创建 Jenkins 任务并集成 Maven 构建工具 创建一个新的自由风格的任务,在构建部分指定 Maven 命令来打包 Spring Boot 应用程序: ```xml mvn clean package -DskipTests=true ``` 此命令会在不执行测试的情况下完成应用程序的编译和打包操作[^2]。 --- #### 设置 Webhook 触发器 为了让每次提交代码都能自动触发 Jenkins 构建流程,需设置 Gitee 的 Webhooks 功能。具体步骤如下: - 登录至 Gitee 并导航到目标仓库; - 进入 **管理 -> WebHooks** 页面; - 新增一条记录,填写以下参数: - URL 地址:`http://<jenkins-ip>:8080/gitee-webhook/<job-name>` (替换 `<jenkins-ip>` 和 `<job-name>`) - 密钥:与 Jenkins 中配置一致的 Token 值; - 触发条件:勾选 “Push” 类型事件即可。 当开发者向该分支推送新版本时,Gitee 就会通知 Jenkins 开始新一轮 CI 流程处理。 --- #### 编写 Shell 脚本来上传文件到远程服务器 假设已经有一台 Linux 主机作为生产环境,则可以通过 SSH 协议传输生成好的 JAR 文件过去。下面是一个简单的 shell 脚本例子用于演示目的[^4]: ```sh #!/bin/bash # 判断是否存在 jar 包 if [ ! -f "target/${PROJECT_NAME}.jar" ]; then echo "[ERROR] The target jar does not exist!" exit 1; fi; scp -P ${SSH_PORT} target/${PROJECT_NAME}.jar ${REMOTE_USER}@${REMOTE_HOST}:${DEPLOY_PATH} ssh -p ${SSH_PORT} ${REMOTE_USER}@${REMOTE_HOST} << EOF cd $DEPLOY_PATH && chmod +x start.sh && ./stop.sh || true && sleep 5s && ./start.sh & EOF ``` 其中 `${PROJECT_NAME}`,`${SSH_PORT}` 等变量应根据实际情况调整好后再放入全局属性或者凭据插件里保存起来调用比较安全可靠些[^3]。 --- #### 总结说明 整个工作流涵盖了从源码托管平台(Gitee),持续集成服务(Jenkins)直到最终部署地点(远端Linux机器)之间的各个环节衔接紧密顺畅高效便捷易维护性强等特点突出表现明显优于传统手动方式很多倍不止于此之外还具备高度灵活性适应不同场景需求变化迅速响应及时等诸多优势值得推广普及应用广泛前景广阔未来可期!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值