实现一键自动化部署Jenkins+Docker 项目!步骤齐全,少走坑路!

全栈开发者社区

共 4184字,需浏览 9分钟

 ·

2023-07-04 04:13

作者:这把躺赢 来源:blog.csdn.net/zqqiang0307/article/details/120458586

本文章实现最简单全面的Jenkins+docker+springboot 一键自动部署项目,步骤齐全,少走坑路。

环境:centos7+git(gitee)

简述实现步骤:在docker安装jenkins,配置jenkins基本信息,利用Dockerfile和shell脚本实现项目自动拉取打包并运行。

安装docker

docker 安装社区版本CE

  • 确保 yum 包更新到最新。
      yum update
  • 卸载旧版本(如果安装过旧版本的话)
      yum remove docker  docker-common docker-selinux docker-engine
  • 安装需要的软件包
      yum install -y yum-utils device-mapper-persistent-data lvm2
  • 设置yum源
      yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  • 安装docker
      yum install docker-ce  #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版17.12.0
yum install <自己的版本>  # 例如:sudo yum install docker-ce-17.12.0.ce
  • 启动和开机启动
      systemctl start docker
systemctl enable docker
  • 验证安装是否成功
      docker version

安装Jenkins

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

  • 安装J enkins

docker 安装一切都是那么简单,注意检查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}:8080

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

  • 初始化 Jenkins

详情见官网教程->https://www.jenkins.io

  • 解锁 Jenkins

进入Jenkins容器:docker exec -it {Jenkins容器名} bash

例如 docker exec -it jenkins bash

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

复制密码到输入框里面

33b31643b5de18e3b41ba92b8374876c.webp
  • 安装插件

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

6fb5946c3cf5407ac3b8e6687ca041e9.webp
  • 创建管理员用户

此账户一定要记住哦

系统配置

  • 安装需要插件

进入【首页】–【系统管理】–【插件管理】–【可选插件

搜索以下需要安装的插件,点击安装即可。

006c1e47860df3f18d96b59fef56b22c.webp
  • 安装Maven Integration

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

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

  • 配置Maven

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

ab58fa98ea3e732ca807ebae1992d56c.webp

创建任务

  • 新建任务

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

d1b89d1a0ac3185116c715c8f1a28911.webp
  • 源码管理

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

dd76ecefd20bb1a0176b7aab71235692.webp01ee09801e2113bf29b398672a51b17e.webp

  • 构建触发器

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

ed28a302ab07b9f806eea099d88f385c.webp

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

      clean install -Dmaven.test.skip=true
4cb924b621b37683486764b9df572dc2.webp
  • 保存

点击【保存】按钮即可

测试

该功能测试是否能正常打包

  • 构建

点击构建按钮3fc8ef29a6866c3a1b47617d26765cd3.webp

  • 查看日志

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

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

788b0784e2961f624456aafd37ab6f77.webp06c855b0378d91ec196763e25fb02ff9.webp

  • 查看项目位置
      cd /var/jenkins_home/workspace

ll命令即可查看是否存在

运行项目

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

  • Dockerfile

在springboot项目根目录新建一个名为Dockerfile的文件,注意没有后缀名,其内容如下:(大致就是使用jdk8,把jar包添加到docker然后运行prd配置文件)

      FROM jdk:8
VOLUME /tmp
ADD target/zx-order-0.0.1-SNAPSHOT.jar app.jar
EXPOSE 8888
ENTRYPOINT ["Bash","-DBash.security.egd=file:/dev/./urandom","-jar","/app.jar","--spring.profiles.active=prd"]
  • 修改jenkins任务配置
9ff3d77355729dc4bb638ef629ffbb99.webp

配置如下:

d2f6c912c06e7d9d6930e213fb555466.webp
      -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 是如果命令执行失败也会继续实行,为了防止第一次没有该镜像报错

  • 保存

点击保存即可

  • 构建
91b5352f1a011f403e30df7ded81015c.webp

查看jenkins控制台输出,输出如下,证明成功!

  • 验证
      docker ps 查看是否有自己的容器
docker logs 自己的容器名 查看日志是否正确

浏览器访问项目试一试。

      

觉得本文对你有帮助?请分享给更多人

关注「 全栈开发者社区 」加星标,提升全栈技能

本公众号会不定期给大家发福利,包括送书、学习资源等,敬请期待吧!

如果感觉推送内容不错,不妨右下角点个 在看 转发朋友圈或收藏,感谢支持。

好文章,留言、点赞、 在看和分享一条龙

浏览 37
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报