上篇文章我们已经构建好应用 docker
镜像,并且将 docker
镜像推送到 DockerHub
仓库了。
这篇文章我们将完成最后一步,将应用部署到服务器上去。
功能梳理
要将 docker
镜像部署到服务器,其实很简单: 使用 ssh
登录到服务器,然后执行部署命令即可
-
我们选择
docker-compose
用来部署docker
镜像,需要在服务器上安装docker-compose
命令,这里有安装方法 -
docker-compose
需要一个docker-compose.yml
文件 -
pipeline
中新增一个阶段deploy
,用于执行远程部署脚本 -
我们将相关脚本都放入一个 Git 项目中,让
pipeline
在执行时自动获取相关代码
新建 Materias
-
进入
Materias 管理界面pipeline
的 Materias 管理界面
-
点击
Add Materias
按钮- Material Type: Git
- Repository URL: https://github.com/hezhong0711/gocd-devops-demo
- Repository Branch: main
- Alternate Checkout Path: gocd-devops-demo
- Repository polling behavior: 勾选第二个
Fetch updates to this repository only on webhook or manual trigger
- 这个选项指定
pipeline
在手动触发执行时才去拉取最新的代码,而不会在有代码更新时自动触发pipeline
执行
配置 Materias 1
配置 Materias 2
- 这个选项指定
-
点击
Save
按钮保存配置
修改流水线配置
添加阶段 deploy
-
进入
Stage 配置界面Stage
配置界面
-
点击
Add new stage
按钮此阶段需要执行两个任务
- 将
docker-compose.yml
文件复制到服务器上 - 执行
docker-compose
命令,部署服务
配置如下
-
Command:
./script/copy-deploy-file.sh
此脚本用于远程拷贝文件 -
Arguments: 此脚本需要两个参数,第一个是要拷贝的文件路径,第二个是远程服务器路径
./docker-compose/docker-compose.yml /root/docker-compose.yml
-
Working Directory: gocd-devops-demo, 这个是代码的下载路径
添加 Stage
- 将
-
点击
新增 Stage 结果Save
按钮保存配置
-
进入
TASKS
配置界面,添加第二个任务-
选中
TASKS 配置界面Custom Command
,点击Add Task
按钮
-
Command:
./script/deploy.sh
此脚本会在服务器上部署应用 -
Working Directory:
Tasks 配置界面gocd-devops-demo
-
-
点击
配置结果Save
按钮保存配置
配置环境变量
在 deploy
阶段中执行的脚本需要登录远程服务器,我在脚本中时通过环境变量的方式获取到远程服务器的 host
、username
、password
,因此,我们需要给任务添加相应的环境变量
- 进入环境变量配置界面
- 点击
Secure Variables
下的+ Add
按钮- 添加
SERVER_USERNAME
变量,后面输入服务器的ssh
用户名 - 添加
SERVER_HOST
变量,后面输入服务器的域名或者IP
地址 - 添加
SERVER_PASSWORD
变量,后面输入服务器的ssh
登录密码
- 添加
- 点击
SAVE
按钮,保存配置
环境变量配置界面
运行流水线
-
查看运行结果
运行结果 -
查看日志
运行日志 -
登录服务器查看应用是否部署成功
总结
至此,一条从代码提交到应用部署的完整流水线就算完成了。本系列文章详细的介绍了从 GoCD
环境搭建到流水线配置的完整流程,希望对各位有所帮助。
网友评论