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

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: Jenkins+GitLab自动化部署到Docker容器
本文是对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自动化部署到容器就介绍完了。
目录
相关文章
|
9天前
|
Kubernetes 监控 开发者
掌握容器化:Docker与Kubernetes的最佳实践
【10月更文挑战第26天】本文深入探讨了Docker和Kubernetes的最佳实践,涵盖Dockerfile优化、数据卷管理、网络配置、Pod设计、服务发现与负载均衡、声明式更新等内容。同时介绍了容器化现有应用、自动化部署、监控与日志等开发技巧,以及Docker Compose和Helm等实用工具。旨在帮助开发者提高开发效率和系统稳定性,构建现代、高效、可扩展的应用。
|
5天前
|
关系型数据库 MySQL API
|
5天前
|
Java 应用服务中间件 Linux
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
本文主要讲解了Docker的安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库以及Docker容器虚拟化与传统虚拟机比较。
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
|
1天前
|
运维 开发者 Docker
Docker Compose:简化容器化应用的部署与管理
Docker Compose:简化容器化应用的部署与管理
|
1天前
|
Cloud Native 持续交付 Docker
Docker容器化技术:从入门到实践
Docker容器化技术:从入门到实践
|
7天前
|
JavaScript 持续交付 Docker
解锁新技能:Docker容器化部署在微服务架构中的应用
【10月更文挑战第29天】在数字化转型中,微服务架构因灵活性和可扩展性成为企业首选。Docker容器化技术为微服务的部署和管理带来革命性变化。本文探讨Docker在微服务架构中的应用,包括隔离性、可移植性、扩展性、版本控制等方面,并提供代码示例。
39 1
|
15天前
|
存储 缓存 Docker
docker中挂载数据卷到容器
【10月更文挑战第16天】
22 2
|
1天前
|
NoSQL Redis Docker
【赵渝强老师】使用Docker Compose管理容器
Docker Compose 通过 YAML 文件管理多个容器,简化复杂系统的部署和管理。本文介绍了 Docker Compose 的基本概念,并通过一个包含 Redis DB 和 Python Web 模块的示例,展示了如何使用 Docker Compose 部署和管理多容器应用。手动部署和 Docker Compose 部署的对比突显了 Docker Compose 在系统复杂度增加时的优势。
|
1天前
|
前端开发 开发者 Docker
深入探索Docker Compose:简化多容器应用的部署
深入探索Docker Compose:简化多容器应用的部署
10 0
|
1天前
|
数据中心 开发者 Docker
理解并实践Docker容器化技术
理解并实践Docker容器化技术
下一篇
无影云桌面