上篇文章我们已经构建好应用 docker 镜像,并且将 docker 镜像推送到 DockerHub 仓库了。
这篇文章我们将完成最后一步,将应用部署到服务器上去。
功能梳理
要将 docker 镜像部署到服务器,其实很简单: 使用 ssh 登录到服务器,然后执行部署命令即可
我们选择
docker-compose用来部署docker镜像,需要在服务器上安装docker-compose命令,这里有安装方法docker-compose需要一个docker-compose.yml文件pipeline中新增一个阶段deploy,用于执行远程部署脚本-
我们将相关脚本都放入一个 Git 项目中,让
pipeline在执行时自动获取相关代码
新建 Materias
-
进入
pipeline的 Materias 管理界面
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
- 将
-
点击
Save按钮保存配置
新增 Stage 结果 -
进入
TASKS配置界面,添加第二个任务-
选中
Custom Command,点击Add Task按钮
TASKS 配置界面 Command:
./script/deploy.sh此脚本会在服务器上部署应用-
Working Directory:
gocd-devops-demo
Tasks 配置界面
-
-
点击
Save按钮保存配置
配置结果
配置环境变量
在 deploy 阶段中执行的脚本需要登录远程服务器,我在脚本中时通过环境变量的方式获取到远程服务器的 host、username、password,因此,我们需要给任务添加相应的环境变量
- 进入环境变量配置界面
- 点击
Secure Variables下的+ Add按钮- 添加
SERVER_USERNAME变量,后面输入服务器的ssh用户名 - 添加
SERVER_HOST变量,后面输入服务器的域名或者IP地址 - 添加
SERVER_PASSWORD变量,后面输入服务器的ssh登录密码
- 添加
- 点击
SAVE按钮,保存配置
环境变量配置界面
运行流水线
-
查看运行结果
运行结果 -
查看日志
运行日志 登录服务器查看应用是否部署成功
总结
至此,一条从代码提交到应用部署的完整流水线就算完成了。本系列文章详细的介绍了从 GoCD 环境搭建到流水线配置的完整流程,希望对各位有所帮助。











