Docker 安装部署 GoCD
# 编写 docker-compose.yaml
配置文件
version: "3"
services:
server:
image: gocd/gocd-server
container_name: gocd-server
volumes:
- ./data:/godata
- ./home:/home/go
## 安装插件:https://hub.docker.com/r/gocd/gocd-server
environment:
- "GOCD_PLUGIN_INSTALL_a-plugin=https://example.com/a-plugin.jar"
- "MSG_TIME=0"
ports:
- "8153:8153"
- "8154:8154"
privileged: true
restart: always
agent:
## 官方镜像: gocd/gocd-agent-alpine-3.12
image: hezhong0711/gocd-agent-jdk8
container_name: gocd-agent
## 设置 Server 的地址及 秘钥
environment:
- "GO_SERVER_URL=http://server:8153/go"
- "AGENT_BOOTSTRAPPER_ARGS=-sslVerificationMode NONE"
- "AGENT_AUTO_REGISTER_KEY=123456789abcdef"
privileged: true
restart: always
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 镜像说明:
gocd/gocd-server
为官方镜像服务,GoCD 的服务端gocd/gocd-agent-alpine-x.xx
为 GoCD 的节点,最终任务执行就是在节点上执行;gocd/gocd-agent-ubuntu-18.04
为官方提供的节点,节点内为 ubuntu18.04 系统gocd/gocd-agent-docker-dind
为官方提供的节点,节点内为 docker 环境hezhong0711/gocd-agent-jdk8
为用户自定的镜像,里面包含了 jdk 环境
# 配置说明:
- 设置环境变量
GOCD_PLUGIN_INSTALL_a-plugin=https://example.com/a-plugin.jar
来安装插件,具体查看官方文档 - 设置环境变量
GO_SERVER_URL=http://server:8153/go
指向 GoCD Server 地址 - 设置环境变量
AGENT_BOOTSTRAPPER_ARGS=-sslVerificationMode NONE
关闭SSL验证 - 设置环境变量
AGENT_AUTO_REGISTER_KEY=123456789abcdef
为 GoCD Server 生成的秘钥 - 启动完成后,可以在
Agent
下找到我们的节点
# 问题说明:
- 可能会遇到
Agent
注册失败的问题;
Agent
所注册的 秘钥 是服务端启动后生成的;所以需要等 GoCD Server 启动后才有;
最初有考虑过使用 depend_on 来设置启动顺序,但是发现并不生效;
可以通过 docker run
命令分开启动两个容器,但是考虑到维护不方便,所以还是使用 docker-compose
方式;
目前的解决方案为如果注册失败,则单独重启一下 Agent
服务即可。
上次更新: 2021/10/16, 00:29:48