我为我的Teamcity管道创建了一个新的构建。这是我第一次使用Docker buildstep。在我设置了所有的东西之后,我意识到构建代理似乎还没有做好准备。

据我所知,我的经纪人似乎还没有准备好用码头来建造,但是没有人真正告诉我你是如何做到的。我阅读了官方指南,但没有提到如何将码头安装到我的代理中(如果这是解决问题的方法)。
有人能告诉我要怎么做才能让它开始工作吗?
编辑
@ Pomidor高级教授帮助我走近了一步。我将他的第一个示例添加到了docker命令中。
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但是仍然在抱怨这个消息:

这让我又一次不知所措。
最终解决方案:即将到来的EDIT2问题可以通过重新启动teamcity服务器实例来解决。代理实际上能够运行构建,但是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构建步骤信息:



发布于 2019-04-11 13:44:07
TC限制了配置,因为TA没有启动Docker守护进程。
您应该通过-e DOCKER_IN_DOCKER=start来自动启动容器中的停靠守护进程。另外,坞守护进程需要停靠套接字。在Linux容器中,如果需要构建内部可用的Docker守护进程,则有两个选项:
--privileged旗在容器中运行新的Docker守护进程-v docker_volumes:/var/lib/docker Docker (在本例中,您将受益于主机和所有容器之间共享的缓存,但存在一个安全问题:您的构建可能实际上会损害您的主机码头,因此使用它将承担您自己的风险)在Linux容器中,如果需要构建内部可用的Docker守护进程,则有两个选项:
示例
docker run -it -e SERVER_URL="<url to TeamCity server>" \
--privileged -e DOCKER_IN_DOCKER=start \
jetbrains/teamcity-agent
docker run -it -e SERVER_URL="<url to TeamCity server>" \
-v /var/run/docker.sock:/var/run/docker.sock \
jetbrains/teamcity-agent UPD
需要docker.server.osType,因为在构建步骤中设置了linux
发布于 2020-06-19 21:34:51
对我起作用的是更改/var/run/docker.sock代理容器的权限。
在容器内运行一个shell:docker exec -u 0 -it <CONTAINER_ID> bash
更改对接器套接字的权限:chmod 666 /var/run/docker.sock
验证码头容器是否使用套接字:docker version
https://stackoverflow.com/questions/55631068
复制相似问题