Jenkins+GitLab自动化部署到Docker容器

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: Jenkins+GitLab自动化部署到Docker容器

2000元阿里云代金券免费领取,2核4G云服务器仅664元/3年,新老用户都有优惠,立即抢购>>>


阿里云采购季(云主机223元/3年)活动入口:请点击进入>>>,


阿里云学生服务器(9.5元/月)购买入口:请点击进入>>>,

@toc

本文是对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"]

??项目结构如下图所示。

image-20230201205126330

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 配置测试服务器

image-20230201210014979

??在Configure System中往下拉找到Publish over SSH,如下图

image-20230201210134066

??编写测试测试服务器相关配置

image-20230201210228884

??和原来的文章比,这里只是IP变了,密码没变

3.2 Pre Steps配置

image-20230201210345611

??在执行构建之前,需要先对测试服务器上进行请理工作,包括删除之前保留的内容,停止正在运行的容器,删除这个容器,并删除之前的旧镜像。
image-20230201210553602

3.3 Post Steps配置

??在构建完成之后,我们需要将项目的jar包传到测试服务器上(这里测试服务器的ip为192.168.159.53)

image-20230201211103866

??除此之外,还需要将Dockerfile文件也上传到测试服务器

??先在GitLab服务器上看下项目结构(主要看文件路径)

image-20230201211217020

??然后点击Add Transfer Set,编写内容如下:

image-20230201211515189

??这里主要是将GitLab仓库中的Dockerfile也上传到测试服务器,并编写上传成功之后的运行脚本,这里的意思是上传完成之后,根据最新的Dockerfile文件构建镜像,然后根据镜像创建容器运行即可。

3.4 执行构建

点击构建按钮,执行构建

image-20230201211710275

??1、查看项目控制台

image-20230201211748608

??这里可以看到构建成功了,打码的部分是我配置了邮箱通知,构建之后会发邮件通知我结果。

??2、查看测试服务器是否收到Jenkins服务器发送的jar包和Dockerfile

image-20230201211912863

image-20230201211924060

??3、查看是否构建了新的镜像

docker images

image-20230201212030247

??可以看到,是我们的新镜像,这里显示创建时间在一个小时之前是因为我先跑的构建任务才写的博客。

4、查看是否运行了容器

docker ps

image-20230201212214763

??这里我将外部的8080端口映射到了容器内部的8888端口

??5、测试能够访问项目Controller

http://192.168.159.53:8080/index/hello

image-20230201212334054

??到这里,Jenkins+GitLab+Docker自动化部署到容器就介绍完了。
目录
相关文章
|
2天前
|
Java 虚拟化 Docker
Docker简介及用途,为什么要使用Docker?Docker容器和虚拟机的区别
Docker简介及用途,为什么要使用Docker?Docker容器和虚拟机的区别
|
2天前
|
存储 Linux Docker
CentOS7修改Docker容器和镜像默认存储位置
CentOS7修改Docker容器和镜像默认存储位置
|
2天前
|
Linux Docker 容器
更改docker容器中的时间而不影响宿主机
更改docker容器中的时间而不影响宿主机
|
2天前
|
Ubuntu Linux Go
docker容器启动报错
docker容器启动报错解决
|
3天前
|
jenkins 持续交付 数据安全/隐私保护
Docker 安装 Jenkins
Jenkins 是一个独立的开源自动化服务器,可用于自动化与构建、测试、交付或部署软件相关的各种任务。
17 1
|
4天前
|
Ubuntu Docker 容器
docker容器保存和导入
docker容器保存和导入
25 0
|
4天前
|
Ubuntu Docker 容器
清理docker容器
清理docker容器
14 0
|
5天前
|
Prometheus 监控 Cloud Native
构建高效稳定的Docker容器监控体系
【5月更文挑战第14天】 在现代微服务架构中,Docker容器作为应用部署的基本单元,其运行状态的监控对于保障系统稳定性和性能至关重要。本文将探讨如何构建一个高效且稳定的Docker容器监控体系,涵盖监控工具的选择、关键指标的采集、数据可视化以及告警机制的设计。通过对Prometheus和Grafana的整合使用,实现对容器资源利用率、网络IO以及应用健康状态的全方位监控,确保系统的高可用性和故障快速响应。
|
5天前
|
Prometheus 监控 Cloud Native
构建高效稳定的Docker容器监控体系
【5月更文挑战第13天】在微服务架构和容器化部署日益普及的背景下,对Docker容器的监控变得尤为重要。本文将探讨一种构建高效稳定Docker容器监控体系的方法,通过集成Prometheus和cAdvisor工具,实现对容器资源使用情况、性能指标和运行状态的实时监控。同时,结合Grafana进行数据可视化,为运维人员提供直观的分析界面,以便及时发现和解决潜在问题,保障系统的高可用性和稳定性。
31 6
|
5天前
|
存储 安全 开发者
如何删除 Docker 镜像、容器和卷?
【5月更文挑战第11天】
22 2
如何删除 Docker 镜像、容器和卷?
http://www.vxiaotou.com