
gocdexperimental/gocd-agent-wolfi基于Wolfi最新版本的GoCD Agent容器镜像。
如有问题或反馈,请在 [***] 记录。
使用以下命令启动容器:
docker run -d -e GO_SERVER_URL=... gocd/gocd-agent-wolfi:v25.3.0
注意:请务必始终提供版本标签。我们不发布 latest 标签,也无此计划。
此命令将启动GoCD Agent并连接到由 GO_SERVER_URL 指定的GoCD服务器。
注意:
GO_SERVER_URL必须是HTTPS URL并以/go结尾,例如[***]
如果您已运行gocd-server容器且容器名为 angry_feynman,可通过以下方式连接gocd-agent容器:
docker run -d -e GO_SERVER_URL=[***] inspect --format='{{(index (index .NetworkSettings.IPAddress))}}' angry_feynman):8153/go gocd/gocd-agent-wolfi:v25.3.0
或
如果GoCD服务器容器已将端口映射到主机:
docker run -d -e GO_SERVER_URL=http://<主机机器IP>:$(docker inspect --format='{{(index (index .NetworkSettings.Ports "8153/tcp") 0).HostPort}}' angry_feynman)/go gocd/gocd-agent-wolfi:v25.3.0
docker run -d \ -e AGENT_AUTO_REGISTER_KEY=... \ -e AGENT_AUTO_REGISTER_RESOURCES=... \ -e AGENT_AUTO_REGISTER_ENVIRONMENTS=... \ -e AGENT_AUTO_REGISTER_HOSTNAME=... \ gocd/gocd-agent-wolfi:v25.3.0
如果提供了 AGENT_AUTO_REGISTER_* 变量(建议提供),代理将被服务器自动批准。详见GoCD网站的自动注册文档。
要配置SSL参数,可通过环境变量 AGENT_BOOTSTRAPPER_ARGS 传递参数。支持的选项详见此文档。
shelldocker run -d \ -e AGENT_BOOTSTRAPPER_ARGS='-sslVerificationMode NONE ...' \ gocd/gocd-agent-wolfi:v25.3.0
此镜像可与Docker弹性代理插件和Docker Swarm弹性代理插件良好配合,无需特殊配置。
GoCD Agent会将所有配置、日志和构建文件存储在 /godata 目录。如需提供SSH私钥等安全凭据,可挂载 /home/go 目录。
docker run -v /path/to/godata:/godata -v /path/to/home-dir:/home/go gocd/gocd-agent-wolfi:v25.3.0
注意:确保
/path/to/home-dir和/path/to/godata可被容器内的go用户访问(go用户的UID为1000)。
可通过环境变量 GOCD_AGENT_JVM_OPTS 调整JVM选项。
docker run -e GOCD_AGENT_JVM_OPTS="-Dfoo=bar" gocd/gocd-agent-wolfi:v25.3.0
GoCD Agent以 go 用户运行,各目录位置如下:
| 目录 | 描述 |
|---|---|
/godata/config | GoCD配置存储目录 |
/godata/pipelines | Agent执行构建的目录 |
/godata/logs | GoCD日志输出目录 |
/home/go | GoCD Agent的主目录 |
要在作业中运行 docker 和 docker-compose 命令,需将主机的Docker socket作为卷共享(这是常规做法)。
此时,由于Docker守护进程会挂载您定义的卷,您要挂载的文件路径(通常在 /godata/pipelines 内)必须保持一致,以便主机上的Docker守护进程能够找到这些文件。
如果运行多个Agent容器,需覆盖 VOLUME_DIR 环境变量,为每个GoCD Agent容器的 /godata 设置不同路径(以避免冲突)。例如,若第一个容器在主机上的卷路径为 /go-agent1/godata,可将容器的 VOLUME_DIR 环境变量设置为 /go-agent1/godata,docker-entrypoint.sh 脚本会自动管理并确保Agent将配置、日志和流水线存储在此路径。
docker ps -adocker logs CONTAINER_IDdocker exec -it CONTAINER_ID /bin/bash,然后在容器内运行 less /godata/logs/*.logplainCopyright Thoughtworks, Inc. 根据Apache许可证2.0版("许可证")授权; 除非遵守许可证,否则您不能使用此文件。 您可以在以下位置获取许可证的副本: [***] 除非适用***要求或书面同意,否则根据许可证分发的软件按"原样"分发, 不附带任何明示或暗示的担保或条件。 有关许可证下权限和限制的具体语言,请参阅许可证。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务