环境安装
安装 Docker
参考 Linux 安装 Docker
安装 Docker Compose
参考 安装 Docker Compose
安装 Jenkins
参考 Docker Compose 安装 Jenkins
安装 Harbor 镜像仓库
参考 Harbor Docker 镜像仓库的安装
以上安装完成后,需要在 Jenkins
服务器和部署服务器上配置 Harbor
的镜像仓库地址
新增 Harbor 仓库
编写 Dockerfile 和 Docker Compose
在 Spring Boot 项目中新增 Dockerfile
文件
FROM openjdk:8-jre
COPY recruit-0.0.1-SNAPSHOT.jar app.jar
ENTRYPOINT ["java", "-jar", "/app.jar"]
EXPOSE 80
新增 docker-compose.yml
文件
version: '3.1'
services:recruit:restart: alwaysimage: harbor.yuu.com/recruit/recruitcontainer_name: recruitports:- 80:80networks:- bootnetworks:boot:external:name: recruit
创建 Docker 网络组
在部署服务器创建 docker
网络组
docker network create recruit
配置 Jenkins 的 Git 仓库 SSH 免密登录
- 交互式进入 Jenkins 容器
docker exerc -it jenkins /bin/bash
- 生成 SSH KEY
ssh-keygen -t rsa -C "xxx@xxx.com"
- 查看公钥
cat /var/jenkins_home/.ssh/id_rsa.pub
- 添加密钥到 Git 仓库
- 手动连接 Git,生成验证信息
ssh -t gitee.com
Jenkins 配置 Publish Over SSH
系统管理
->系统设置
->Publis Over SSH
其中Remote Directory
是指Jenkins
可以在目标服务器操作的目录- 测试能否通信
- 保存
创建 Jenkins 项目
- 选择自由风格
配置第一次构建
-
源码管理,配置项目
Git
仓库SSH
地址
-
增加构建步骤,
调用顶层 Maven 目标
,选择Maven
的版本,目标为mvn clean package
命令
-
保存后,构建项目
-
查看构建日志
配置正式构建
-
关闭源码管理
-
删除
调用顶层 Maven 目标
构建
-
增加构建步骤
执行 Shell
cd /var/jenkins_home/workspace/recruit git pull origin master /var/jenkins_home/apache-maven-3.6.0/bin/mvn clean package
-
增加 SSH 构建
Send files or execute commands over SSH
Source files
:需要传输到远程目标服务器的文件
将打包好的**/*.jar,docker/**
jar
和 docker 文件夹下的Dockerfile
和docker-compose.yml
文件发送到目标服务器Remove prefix
:删除前缀。比如传输 **/*.jar,我们打包的 .jar 文件是在 target 目录下的,传输时会一并创建 target 目录,如果不希望创建 target 目录,则可以使用该参数屏蔽掉这些前缀文件夹。Remote directory
:在远程目标服务器创建操作目录Exec command
:在远程目标服务器执行的命令# 进入远程服务器的操作目录 cd /usr/local/serves/recruit # 将项目 jar 拷贝到 docker 文件夹下,用于构建 Docker 镜像 cp target/recruit-0.0.1-SNAPSHOT.jar docker # 进入 docker 目录 cd docker #使用 Dockerfile 构建镜像 docker build -t recruit . # 标记镜像 docker tag recruit:latest harbor.yuu.com/recruit/recruit:latest # 登录 Harbor 镜像仓库 docker login harbor.yuu.com -u admin -p Harbor12345 # 推送镜像到仓库 docker push harbor.yuu.com/recruit/recruit:latest # 关闭项目 docker-compose down # 启动项目 docker-compose up -d # 删除虚悬镜像 docker image prune -f
效果演示
- 当前首页标题
- 修改首页标题
- 提交到 Git 仓库
- Jenkins 构建项目
- 修改成功