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

简介: 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自动化部署到容器就介绍完了。
目录
相关文章
|
Kubernetes Docker Python
Docker 与 Kubernetes 容器化部署核心技术及企业级应用实践全方案解析
本文详解Docker与Kubernetes容器化技术,涵盖概念原理、环境搭建、镜像构建、应用部署及监控扩展,助你掌握企业级容器化方案,提升应用开发与运维效率。
1520 108
|
监控 Kubernetes 安全
还没搞懂Docker? Docker容器技术实战指南 ! 从入门到企业级应用 !
蒋星熠Jaxonic,技术探索者,以代码为笔,在二进制星河中书写极客诗篇。专注Docker与容器化实践,分享从入门到企业级应用的深度经验,助力开发者乘风破浪,驶向云原生新世界。
925 52
还没搞懂Docker? Docker容器技术实战指南 ! 从入门到企业级应用 !
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
1075 6
|
监控 Linux 调度
【赵渝强老师】Docker容器的资源管理机制
本文介绍了Linux CGroup技术及其在Docker资源管理中的应用。通过实例演示了如何利用CGroup限制应用程序的CPU、内存和I/O带宽使用,实现系统资源的精细化控制,帮助理解Docker底层资源限制机制。
1016 6
|
缓存 Ubuntu Docker
Ubuntu环境下删除Docker镜像与容器、配置静态IP地址教程。
如果遇见问题或者想回滚改动, 可以重启系统.
762 16
|
jenkins Java 持续交付
使用 Jenkins 和 Spring Cloud 自动化微服务部署
随着单体应用逐渐被微服务架构取代,企业对快速发布、可扩展性和高可用性的需求日益增长。Jenkins 作为领先的持续集成与部署工具,结合 Spring Cloud 提供的云原生解决方案,能够有效简化微服务的开发、测试与部署流程。本文介绍了如何通过 Jenkins 实现微服务的自动化构建与部署,并结合 Spring Cloud 的配置管理、服务发现等功能,打造高效、稳定的微服务交付流程。
1287 0
使用 Jenkins 和 Spring Cloud 自动化微服务部署
|
安全 持续交付 Docker
Docker:重塑现代软件交付的容器引擎
Docker:重塑现代软件交付的容器引擎