天天看点

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脚本启动项目
docker安装gitlab_基于jenkins实现docker自动化部署

三、编码实战

  1. 在idea中新建一个springboot项目
docker安装gitlab_基于jenkins实现docker自动化部署
  1. 修改application.yml,编写HelloDocker测试类
docker安装gitlab_基于jenkins实现docker自动化部署
docker安装gitlab_基于jenkins实现docker自动化部署
  1. 本地启动一下访问一下
docker安装gitlab_基于jenkins实现docker自动化部署
  1. 将docker代码上传到gitlab
docker安装gitlab_基于jenkins实现docker自动化部署
docker安装gitlab_基于jenkins实现docker自动化部署
docker安装gitlab_基于jenkins实现docker自动化部署
docker安装gitlab_基于jenkins实现docker自动化部署
  1. 登录gitlab服务器( 192.168.183.130)创建对应的项目,选择create a project,由于是测试可见等级原因选择了public
docker安装gitlab_基于jenkins实现docker自动化部署
docker安装gitlab_基于jenkins实现docker自动化部署
docker安装gitlab_基于jenkins实现docker自动化部署
docker安装gitlab_基于jenkins实现docker自动化部署
docker安装gitlab_基于jenkins实现docker自动化部署
docker安装gitlab_基于jenkins实现docker自动化部署
docker安装gitlab_基于jenkins实现docker自动化部署
docker安装gitlab_基于jenkins实现docker自动化部署

四、jenkins新建hello-docker项目

  1. 登录jenkins新建一个maven项目
docker安装gitlab_基于jenkins实现docker自动化部署
docker安装gitlab_基于jenkins实现docker自动化部署
  1. 配置gitlab信息
docker安装gitlab_基于jenkins实现docker自动化部署
  1. 配置maven信息,配置好点击保存 clean install -Dmaven.test.skip=true
docker安装gitlab_基于jenkins实现docker自动化部署
  1. 点击立即构建,如果构建失败 则需要给jenkins赋予maven本地仓库的权限

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

docker安装gitlab_基于jenkins实现docker自动化部署
  1. 点击#1正在构建的项目-->控制台输出,看到以下界面说明已经完成了jenkins从gitlab拉取代码并编译打包的过程了,接下就是怎么发布到docker的问题了
docker安装gitlab_基于jenkins实现docker自动化部署
docker安装gitlab_基于jenkins实现docker自动化部署

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

  1. 查看一下私服信息,当然私服里面是空的
docker安装gitlab_基于jenkins实现docker自动化部署
curl http://192.168.183.135:5000/v2/_catalog
           
  1. 修改代码上的pom.xml文件,引入 docker-maven-plugin 插件
docker安装gitlab_基于jenkins实现docker自动化部署
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
docker安装gitlab_基于jenkins实现docker自动化部署
  1. 看到以下图说明镜像制作成功,并发布到我们的私服了,上服务器检查一下
docker安装gitlab_基于jenkins实现docker自动化部署
docker安装gitlab_基于jenkins实现docker自动化部署
  1. 到此我们就剩最后一步,将制作好的镜像用docker容器启动,修改jenkins中hello-docker配置文件
docker安装gitlab_基于jenkins实现docker自动化部署
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再次构建就好
docker安装gitlab_基于jenkins实现docker自动化部署
docker安装gitlab_基于jenkins实现docker自动化部署
docker安装gitlab_基于jenkins实现docker自动化部署
docker安装gitlab_基于jenkins实现docker自动化部署
docker安装gitlab_基于jenkins实现docker自动化部署
  1. 浏览器输入:http://192.168.183.135:8081/docker/index
docker安装gitlab_基于jenkins实现docker自动化部署

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

继续阅读