【发布时间】:2021-07-14 04:05:32
【问题描述】:
我为我的 Teamcity 管道创建了一个新版本。我第一次使用 Docker buildstep。设置完所有内容后,我意识到构建代理似乎还没有准备好。
我知道我的代理似乎还没有准备好使用 docker 进行构建但是实际上没有人告诉我如何做到这一点。我阅读了官方指南,但没有关于如何将 docker 实际安装到我的代理中的消息(如果这是解决问题的方法)。
谁能告诉我我必须做什么才能让它工作?
编辑
@Senior Pomidor 帮助我更进一步。我将他的第一个示例添加到 docker run 命令中
docker run -it -e SERVER_URL="<url to TeamCity server>" \
--privileged -e DOCKER_IN_DOCKER=start \
jetbrains/teamcity-agent
这样做后,我删除了屏幕截图中提到的消息。我的代理配置现在具有以下内容:
docker.server.osType linux
docker.server.version 18.06.1
docker.version 18.06.1
但 Teamcity 仍然抱怨这条消息:
这又让我一无所知。
最终解决方案: 只需重新启动 teamcity 服务器实例即可解决即将出现的 EDIT2 问题。代理实际上能够运行构建,但如果没有重新启动,teamcity 就无法意识到这一点。
EDIT2
请求信息:
我的 CI 服务器操作系统:
PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
NAME="Debian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
运行容器:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0f8e0b04d6a6 jetbrains/teamcity-agent "/run-services.sh" 19 hours ago Up 19 hours 9090/tcp teamcity-agent
20964c22b2d9 jetbrains/teamcity-server "/run-services.sh" 37 hours ago Up 37 hours 0.0.0.0:80->8111/tcp teamcity-server-instance
容器运行者:
## Server
docker run -dit --name teamcity-server-instance -v /data/teamcity:/data/teamcity_server/datadir -v /var/log/teamcity:/opt/teamcity/logs -p 80:8111 jetbrains/teamcity-server
## Agent
docker run -itd --name teamcity-agent -e SERVER_URL="XXX.XXX.XXX.XXX:80" --privileged -e DOCKER_IN_DOCKER=start -v /etc/teamcity/agent/conf:/data/teamcity_agent/conf jetbrains/teamcity-agent
构建步骤信息:
【问题讨论】:
-
因为代理在没有 docker 的情况下启动。你如何运行你的代理?您的代理是否作为 Docker 容器运行?
-
是的,它确实作为容器运行。我想知道如何将 Docker 安装到其中。只需
exec进入容器并 apt-get docker 还是什么? -
能否请您添加您的构建配置和运行 TA 的服务器的信息?我认为您的配置需要 Windows 服务器
-
@SeniorPomidor 添加了有关服务器和 ci 配置的信息
-
能否请您打开您的代理-> 代理参数-> 配置参数-> 复制值
docker.server.osType并发送到这里?
标签: docker build continuous-integration teamcity