docker安装gitlab_基于jenkins实现docker自动化部署

一、环境介绍与准备

  1. 环境搭建与配置,之前两篇文章已经详细介绍了,这里不再重复
  2. 环境介绍:
a. 这里使用了两台服务器 A服务器: 192.168.183.135 B服务器:192.168.183.130b. A服务器:安装了JDK、maven、jenkins(基于docker安装) docker私服c. B服务器:gitlab (基于docker安装)d. 本地开发环境:idea

3. 访问地址介绍:

a. jenkins: http://192.168.183.135:9090/b. gitlab: http://192.168.183.130

二、jenkins基于docker构建项目思路分析

  1. 本地代码push到服务器
  2. A服务器jenkins从B服务器拉取到代码
  3. A服务器获取代码后用maven编译、打包
  4. A服务器执行shell脚本启动项目
3db1e276b68fb7359524bc9c0b9c37d2.png

三、编码实战

  1. 在idea中新建一个springboot项目
3851526badf0eaba4644ed1035f18209.png
  1. 修改application.yml,编写HelloDocker测试类
a0581bade84c58b8adfeb3de9a59b646.png
3def4b9625c30d3006b8c3f6bfb7aabb.png
  1. 本地启动一下访问一下
004a6958d1e109248f87f33c2bb0f93c.png
  1. 将docker代码上传到gitlab
f96884dce57e91dd86837a03ae303705.png
d801e19ca88e288c7406f4e6bc2041ee.png
2ea7c6b8ce414e8920dad77c2fd93a90.png
4737c03799626bddbad1f78d410cf372.png
  1. 登录gitlab服务器( 192.168.183.130)创建对应的项目,选择create a project,由于是测试可见等级原因选择了public
1d1b9f47ebb8d268c309cd0b72a078fd.png
431ba9717b90d63b6b2f52bb33f5355e.png
1c2b704c0f92b697b5930a15c11216cd.png
1fa2077174f7ef3cd82d9d562ea60f53.png
0d0b258fb150aadacb3135ddcffcac1a.png
a0c9cac8b817c91972d1d716cff8b106.png
9825b1855861453bb7770fa6a137e6ab.png
f82612be762236018f815a18ef1dd191.png

四、jenkins新建hello-docker项目

  1. 登录jenkins新建一个maven项目
dc55fbcb2bbd1b1b94856a27042c8e6e.png
43c8c1efb1afccf5e5c26e1a9416546d.png
  1. 配置gitlab信息
9ef4f0580e4cf3c05844e352fe8f8717.png
  1. 配置maven信息,配置好点击保存 clean install -Dmaven.test.skip=true
43ea54ea604db9d49850ff293a217ae9.png
  1. 点击立即构建,如果构建失败 则需要给jenkins赋予maven本地仓库的权限

a.chown -R 1000:1000 /usr/local/maven (这是我A服务器上maven的本地仓库地址)

1bb43e710a8f004d9267291a89a974d1.png
  1. 点击#1正在构建的项目-->控制台输出,看到以下界面说明已经完成了jenkins从gitlab拉取代码并编译打包的过程了,接下就是怎么发布到docker的问题了
f8818dc1728438f266a6460910f2182a.png
090deea1150d08963d77f6241ab21563.png

五、docker运行jenkins编译打包后的jar包,这里我们会使用 docker-maven-plugin 这个插件来完成编译打包发布到docker私服

  1. 查看一下私服信息,当然私服里面是空的
7ad733b3551431e91c873a6952f08724.png
curl http://192.168.183.135:5000/v2/_catalog
  1. 修改代码上的pom.xml文件,引入 docker-maven-plugin 插件
94778de74605ee09abc2283bb8cc5e83.png
com.spotify    docker-maven-plugin    0.4.13http://192.168.183.135:2375192.168.183.135:5000/${project.artifactId}openjdk:8["java", "-jar","-Duser.timezone=GMT+8", "/${project.build.finalName}.jar"]/${project.build.directory}${project.build.finalName}.jar
  1. 修改jenkins上hello-docker的maven配置打包命令:clean package -Dmaven.test.skip=true docker:build docker:push
39278ca933df208e6e9224cba8e92f55.png
  1. 看到以下图说明镜像制作成功,并发布到我们的私服了,上服务器检查一下
09af67a96ee5c01c6e9c62693c59d2cc.png
273703655115ba02c812d7fa8b055425.png
  1. 到此我们就剩最后一步,将制作好的镜像用docker容器启动,修改jenkins中hello-docker配置文件
2c2ec696126c061ffc63e95e24995e0c.png
docker rm -f hello-dockerdocker run -d --name hello-docker -p 8081:8081 -v /docker-log:/logs 192.168.183.135:5000/docker
  1. 如果发生以下错误则说明DOCKER_HOST环境变量配置有问题,修改jenkins的docker-compose.yml 然后重启jenkins再次构建就好
f18c4563429c1d5549cb1754780890cb.png
84ffb4edb91e66d92962589b3d108f1e.png
080e76abee46481e35de6d595fe4c49e.png
53b7459050a2c0a83e33c5b815cceca3.png
aa6a6b5e07c46a468b6a222b459a7516.png
  1. 浏览器输入:http://192.168.183.135:8081/docker/index
68973bc1d026d79f47d54784e6daf890.png

到此jenkins+gitlab+docker部署项目就完成,构建脚本等目前相当简陋,后续会继续完成,并基于spring cloud搭建项目

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值