本教程中使用到的 maven、gradle、docker、docker-compose、shell 类型 runner,需要提前创建好,参考:。
Maven 项目构建
.gitlab-ci.yml
1 | pre: |
Gradle 项目构建
.gitlab-ci.yml
1 | pre: |
构建 Docker 镜像
这里使用的几个变量是在 gitlab 配置好的
harbor地址:$CI_HARBOR_REGISTRY
harbor登录用户:$CI_HARBOR_REGISTRY_USER
harbor登录密码:$CI_HARBOR_REGISTRY_PASSWORD
.gitlab-ci.yml
1 | build_mgt: |
docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13 version: '3.8'
services:
wx-admin:
image: "${IMAGE}"
container_name: wx-admin
volumes:
- "${FOLDER}/logs:/home/grg/logs"
environment:
- "TZ=Asia/Shanghai"
ports:
- 8080:8080
restart: always
SSH 部署到远程主机
.gitlab-ci.yml
1 | deploy_mgt: |
docker-compose.yml
1 | version: '3.8' |
gitlab-runner 免密登录受控主机
情况一:受控主机已经存在~/.ssh/authorized_keys
将 gitlab-runner 的 id_rsa.pub 追加到 受控主机的 authorized_keys 文件
参考命令
1 | 使用 gitlab-runner 用户登录 gitlab-runner 容器 |
也可以自己手动 copy 过去。
注意:容器内.ssh/id_rsa.pub已经最好持久化到宿主机。
情况二:受控主机不存在~/.ssh/ authorized_keys
在受控主机创建目录和文件
1 | 如果没有.ssh目录,手动创建 |
配置权限
1 | 将.ssh目录的权限为700 |
接下来可按照情况一
步骤操作。