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自动化部署到容器就介绍完了。
目录
相关文章
|
XML jenkins 机器人
JMeter+Ant+Jenkins实现接口自动化测试持续集成
本文介绍了如何使用Ant生成JMeter接口测试报告,并集成到Jenkins中实现自动化测试。内容涵盖Ant与JMeter环境配置、build.xml文件设置、测试执行及报告生成,同时包括Jenkins插件安装、项目配置和钉钉消息通知的集成,帮助实现持续测试与结果可视化。
1395 0
|
人工智能 Kubernetes jenkins
容器化AI模型的持续集成与持续交付(CI/CD):自动化模型更新与部署
在前几篇文章中,我们探讨了容器化AI模型的部署、监控、弹性伸缩及安全防护。为加速模型迭代以适应新数据和业务需求,需实现容器化AI模型的持续集成与持续交付(CI/CD)。CI/CD通过自动化构建、测试和部署流程,提高模型更新速度和质量,降低部署风险,增强团队协作。使用Jenkins和Kubernetes可构建高效CI/CD流水线,自动化模型开发和部署,确保环境一致性并提升整体效率。
|
12月前
|
jenkins Java 持续交付
使用 Jenkins 和 Spring Cloud 自动化微服务部署
随着单体应用逐渐被微服务架构取代,企业对快速发布、可扩展性和高可用性的需求日益增长。Jenkins 作为领先的持续集成与部署工具,结合 Spring Cloud 提供的云原生解决方案,能够有效简化微服务的开发、测试与部署流程。本文介绍了如何通过 Jenkins 实现微服务的自动化构建与部署,并结合 Spring Cloud 的配置管理、服务发现等功能,打造高效、稳定的微服务交付流程。
1208 0
使用 Jenkins 和 Spring Cloud 自动化微服务部署
|
监控 jenkins 测试技术
Ansible与Jenkins:自动化工具的对比
Ansible和Jenkins是自动化领域的两大巨头。Ansible专注于配置管理和任务自动化,采用无代理架构,使用YAML定义配置,具有幂等性和可扩展性。Jenkins则擅长持续集成和持续交付(CI/CD),支持丰富的插件生态系统,适用于自动化构建、测试和部署。两者各有优势,Ansible适合配置管理与大规模部署,Jenkins则在CI/CD方面表现出色。结合使用可创建更强大的自动化工作流,提升团队生产力和软件质量。选择工具时应根据具体需求决定。
|
数据库 Docker 容器
Docker在现代软件开发中扮演着重要角色,通过Dockerfile自动化构建Docker镜像,实现高效、可重复的构建过程。
Docker在现代软件开发中扮演着重要角色,通过Dockerfile自动化构建Docker镜像,实现高效、可重复的构建过程。Dockerfile定义了构建镜像所需的所有指令,包括基础镜像选择、软件安装、文件复制等,极大提高了开发和部署的灵活性与一致性。掌握Dockerfile的编写,对于提升软件开发效率和环境管理具有重要意义。
312 10
|
关系型数据库 MySQL Java
【Docker最新版教程】一文带你快速入门Docker常见用法,实现容器编排和自动化部署上线项目
Docker快速入门到项目部署,MySQL部署+Nginx部署+docker自定义镜像+docker网络+DockerCompose项目实战一文搞定!
2461 10
|
运维 jenkins Java
Jenkins 自动化局域网管控软件构建与部署流程
在企业局域网管理中,Jenkins 作为自动化工具,通过配置源码管理、构建及部署步骤,实现了高效、稳定的软件开发与部署流程,显著提升局域网管控软件的开发与运维效率。
399 5
|
运维 监控 jenkins
运维自动化实战:利用Jenkins构建高效CI/CD流程
【10月更文挑战第18天】运维自动化实战:利用Jenkins构建高效CI/CD流程
|
缓存 监控 数据可视化
利用GitLab CI/CD自动化您的软件开发流程
【10月更文挑战第10天】GitLab CI/CD 是 GitLab 内置的持续集成和持续部署工具,通过编写 .gitlab-ci.yml 文件,可以自动化构建、测试和部署应用程序的过程。本文介绍 GitLab CI/CD 的核心优势、实施步骤及在现代开发中的应用,帮助您提高开发效率和软件质量。
|
运维 jenkins 持续交付
自动化部署的魅力:如何用Jenkins和Docker简化运维工作
【10月更文挑战第7天】在现代软件开发周期中,快速且高效的部署是至关重要的。本文将引导你理解如何使用Jenkins和Docker实现自动化部署,从而简化运维流程。我们将从基础概念开始,逐步深入到实战操作,让你轻松掌握这一强大的工具组合。通过这篇文章,你将学会如何利用这些工具来提升你的工作效率,并减少人为错误的可能性。