本文章实现最简略全面的 Jenkins + Docker + Spring Boot 一键主动部署我的项目。步骤齐全,少走坑路。
- 环境:CentOS7 + Git (Gitee)
- 实现步骤:在 Docker 装置 Jenkins,配置 Jenkins 根本信息,利用 Dockerfile 和 Shell 脚本实现我的项目主动拉取打包并运行。
一、装置 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
6. 启动并设置开机启动
systemctl start docker
7. 验证装置是否胜利
docker version
二、装置 Jenkins
Jenkins 中武官网:https://www.jenkins.io/zh/
1. 装置 Jenkins
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
此处会有几分钟的等待时间。
2. 初始化 Jenkins
详情见官网教程:https://www.jenkins.io/zh/doc
2.1 解锁 Jenkins
# 进入 Jenkins 容器
2.2 装置插件
抉择第一项: 装置举荐的插件 。
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
4. 保留
点击【保留】按钮即可。
五、测试
该功能测试是否能失常打包。
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
2. 批改 Jenkins 工作配置
配置如下:
“-t” 指定新镜像名,”.” 示意 Dockfile 在以后门路。
cd /var/jenkins_home/workspace/zx-order-api
备注:
1. 上图用了 docker logs -f 是为了不便看日志,实在环境不要用,因为会始终期待日志,构建工作会失败;
2. 加 “|| true” 是如果命令执行失败也会持续履行,为了避免第一次没有该镜像报错;
3. 保留:点击保留即可;
4. 构建:查看 Jenkins 控制台输入,输入如下,证实胜利;
5. 验证
docker ps # 查看是否有本人的容器