Jenkins+Docker实现自动化部署

 更新时间:2024年09月30日 09:41:30   作者:小狗Ei  
本文介绍了在CentOS7和Git(Gitee)环境下如何使用Jenkins进行自动化部署,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

环境:CentOS7 + Git (Gitee)

一、安装 Docker

安装社区版本 Docker CE

1. 确保 yum 包更新到最新

yum update

2. 卸载旧版本(如果安装过旧版本的话)

yum remove docker  docker-common docker-selinux docker-engine

3. 安装需要的软件包

yum install -y yum-utils device-mapper-persistent-data lvm2

4. 设置 yum 源

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

5. 安装 Docker

yum install docker-ce  #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版17.12.0
yum install <自己想安装的版本>  # 例如:sudo yum install docker-ce-17.12.0.ce

6. 启动并设置开机启动

systemctl start docker
systemctl enable docker

7. 验证安装是否成功

docker version

二、安装 Jenkins

Jenkins 中文官网:https://www.jenkins.io/zh/

1. 安装 Jenkins

注意检查 8080 是否已经占用,如果占用请修改端口。

docker run --name jenkins -u root --rm -d -p 8080:8080 -p 50000:50000 -v /var/jenkins_home:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock jenkinsci/blueocean

安装完成后访问地址:

http://{部署Jenkins所在服务IP}:端口号

此处会有几分钟的等待时间。

2. 初始化 Jenkins

更多详情见官网教程:https://www.jenkins.io/zh/doc

(1). 解锁 Jenkins

# 进入Jenkins容器
docker exec -it {Jenkins容器名} bash  
# 例如 docker exec -it jenkins bash

# 查看密码
cat /var/lib/jenkins/secrets/initialAdminPassword

# 复制密码到输入框里面

在这里插入图片描述

(2).安装插件

选择第一项:安装推荐的插件。

在这里插入图片描述

(3).创建管理员用户

填写你的管理员账户信息,请记牢。

三、系统配置

1. 安装需要插件

进入【首页】–【系统管理】–【插件管理】–【可选插件】。搜索以下需要安装的插件,点击安装即可。

在这里插入图片描述

安装 Maven Integration

安装 Publish Over SSH(如果不需要远程推送,不用安装)

如果使用 Gitee 码云,安装插件Gitee(自带 Git 不用单独安装)

2. 配置 Maven

进入【首页】–【系统管理】–【全局配置】,拉到页面最下方 maven–maven 安装。

在这里插入图片描述

四、创建任务

1. 新建任务

点击【新建任务】,输入任务名称,点击构建一个自由风格的软件项目。

在这里插入图片描述

2. 源码管理

点击【源码管理】–【Git】,输入仓库地址,添加凭证,选择好凭证即可。

在这里插入图片描述

在这里插入图片描述

3. 构建触发器

点击【构建触发器】–【构建】–【增加构建步骤】–【调用顶层 Maven 目标】–【「填写配置」】–【保存】。

在这里插入图片描述

此处命令只 install,看是否能生成 jar 包。

clean install -Dmaven.test.skip=true

在这里插入图片描述

随后点击【保存】按钮即可。

五、测试

测试是否能正常打包。

1. 构建

点击构建按钮。

在这里插入图片描述

2. 查看日志

点击正在构建的任务,或者点击任务名称进入详情页面,查看控制台输出。看是否能成功打成 jar 包。

该处日志第一次可能下载依赖 jar 包失败,再次点击构建即可成功。

在这里插入图片描述

在这里插入图片描述

3. 查看项目位置

cd /var/jenkins_home/workspace

六、运行项目

因为项目和 Jenkins 在同一台服务器,所以我们用 Shell 脚本运行项目,原理既是通过 Dockerfile 打包镜像,然后 docker 运行即可。

1. Dockerfile

在 Spring Boot 项目根目录新建一个名为 Dockerfile 的文件,注意没有后缀名。

其内容如下(大致就是使用 JDK 8,把 jar 包添加到 docker 然后运行 prd 配置文件。详细可以查看其他教程):

FROM jdk:8
VOLUME /tmp
ADD target/zx-order-0.0.1-SNAPSHOT.jar app.jar
EXPOSE 8888ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar","--spring.profiles.active=prd"]

2. 修改 Jenkins 任务配置

在这里插入图片描述

配置如下:

在这里插入图片描述

“-t” 指定新镜像名,“.” 表示 Dockfile 在当前路径。

cd /var/jenkins_home/workspace/zx-order-api
docker stop zx-order || true
docker rm zx-order || true
docker rmi zx-order || true
docker build -t zx-order .
docker run -d -p 8888:8888 --name zx-order zx-order:latest

注意:

  • 上图用了 docker logs -f 是为了方便看日志,真实环境不要用,因为会一直等待日志,构建任务会失败;
  • 加 “|| true” 是如果命令执行失败也会继续实行,为了防止第一次没有该镜像报错;
  • 保存:点击保存即可;
  • 构建:查看 Jenkins 控制台输出,输出如下,证明成功;

3. 验证是否部署成功

docker ps # 查看是否有自己的容器
docker logs # 自己的容器名,查看日志是否正确
# 打开浏览器访问项目

到此这篇关于Jenkins+Docker实现自动化部署的文章就介绍到这了,更多相关Jenkins Docker自动化部署内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • docker自建rustdesk-server远程桌面的解决方案

    docker自建rustdesk-server远程桌面的解决方案

    RustDesk 是一款可以平替 TeamViewer 的开源软件,旨在提供安全便捷的自建方案,这篇文章主要介绍了docker自建rustdesk-server远程桌面的解决方案,需要的朋友可以参考下
    2024-07-07
  • Docker部署nginx+php环境的全过程(简单可用!)

    Docker部署nginx+php环境的全过程(简单可用!)

    最近在学docker,顺便配置了一下docker中的nginx与php,发现网上的关于docker中配置nginx与php的资料很少,而且有的也很旧,没有太多的参考性,下面这篇文章主要给大家介绍了关于Docker部署nginx+php环境的相关资料,需要的朋友可以参考下
    2023-02-02
  • 详解docker 制作mysql镜像并自动安装脚本

    详解docker 制作mysql镜像并自动安装脚本

    这篇文章主要介绍了docker mysql镜像制作并自动安装脚本,主要包括centos7环境下 一键制作mysql docker镜像并安装,对docker 制作mysql镜像shell脚本感兴趣的朋友一起看看吧
    2022-05-05
  • docker配置pytorch环境来进行训练的方法步骤

    docker配置pytorch环境来进行训练的方法步骤

    本文主要介绍了docker配置pytorch环境来进行训练的方法步骤,从零开始配置,包括换源,安装下载,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • Docker镜像发布到Docker Hub的实现方法

    Docker镜像发布到Docker Hub的实现方法

    本文主要介绍了Docker镜像发布到Docker Hub的实现方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • 深入了解docker(docker镜像、容器、仓库的基本概念)

    深入了解docker(docker镜像、容器、仓库的基本概念)

    本文重点给大家介绍docker镜像、容器、仓库的基本概念,感兴趣的朋友跟着小编一起学习吧
    2016-10-10
  • docker cgroup 资源监控的详解

    docker cgroup 资源监控的详解

    这篇文章主要介绍了docker cgroup 资源监控的详解的相关资料,希望通过本文能帮助到大家,让大家理解掌握这部分内容,需要的朋友可以参考下
    2017-10-10
  • docker 安装Oracle-12C的方法详解

    docker 安装Oracle-12C的方法详解

    这篇文章主要介绍了docker 安装Oracle-12C的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • Docker中如何删除image(镜像)的方法

    Docker中如何删除image(镜像)的方法

    这篇文章主要介绍了Docker中如何删除image(镜像)的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • docker安装Jenkins配置Gitee SSH密钥踩坑解决

    docker安装Jenkins配置Gitee SSH密钥踩坑解决

    这篇文章主要为大家介绍了docker安装Jenkins配置Gitee SSH密钥踩坑解决,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08

最新评论