Jenkins+GitLab自动化部署到Docker容器
- 1、编写Dockerfile
- 2、为测试服务器配置Docker镜像加速器
- 3、Jenkins相关配置
- 3.1 配置测试服务器
- 3.2 Pre Steps配置
- 3.3 Post Steps配置
- 3.4 执行构建
本文是对Jenkins+Git+Maven自动化部署配置这篇文章的补充,有关基本的环境搭建从这篇找。
1、编写Dockerfile
在项目中新建一个docker文件夹,编写Dockerfile,内容如下:
FROM openjdk:11
EXPOSE 8888
WORKDIR /root
ADD jarfile/demo*.jar /root/app.jar
ENTRYPOINT ["java","-jar","/root/app.jar"]
项目结构如下图所示。
2、为测试服务器配置Docker镜像加速器
这里去阿里云的容器镜像服务找就行,脚本如下:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://4md1lb1h.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
3、Jenkins相关配置
3.1 配置测试服务器
在Configure System中往下拉找到Publish over SSH,如下图
编写测试测试服务器相关配置
和原来的文章比,这里只是IP变了,密码没变
3.2 Pre Steps配置
在执行构建之前,需要先对测试服务器上进行请理工作,包括删除之前保留的内容,停止正在运行的容器,删除这个容器,并删除之前的旧镜像。
3.3 Post Steps配置
在构建完成之后,我们需要将项目的jar包传到测试服务器上(这里测试服务器的ip为192.168.159.53)
除此之外,还需要将Dockerfile文件也上传到测试服务器
先在GitLab服务器上看下项目结构(主要看文件路径)
然后点击Add Transfer Set,编写内容如下:
这里主要是将GitLab仓库中的Dockerfile也上传到测试服务器,并编写上传成功之后的运行脚本,这里的意思是上传完成之后,根据最新的Dockerfile文件构建镜像,然后根据镜像创建容器运行即可。
3.4 执行构建
点击构建按钮,执行构建
1、查看项目控制台
这里可以看到构建成功了,打码的部分是我配置了邮箱通知,构建之后会发邮件通知我结果。
2、查看测试服务器是否收到Jenkins服务器发送的jar包和Dockerfile
3、查看是否构建了新的镜像
docker images
可以看到,是我们的新镜像,这里显示创建时间在一个小时之前是因为我先跑的构建任务才写的博客。
4、查看是否运行了容器
docker ps
这里我将外部的8080端口映射到了容器内部的8888端口
5、测试能够访问项目Controller
http://192.168.159.53:8080/index/hello
到这里,Jenkins+GitLab+Docker自动化部署到容器就介绍完了。