在 Docker 上获取 TeamCity 运行
Get TeamCity running on Docker
我是 TeamCity 和 Docker 的新手。我正在努力获得一个带有 TeamCity 运行ning 的 Docker 容器并可在我的本地计算机上使用。我尝试了几种方法,但无济于事:
我按照说明 here. I then tried to run the following command, documented here 为 Mac 安装了 Docker,用于在 docker 中设置 teamcity:
docker run -it --name teamcity-server-instance \
-v c:\docker\data:/data/teamcity_server/datadir \
-v c:\docker\logs:/opt/teamcity/logs \
-p 8111:8111 \
jetbrains/teamcity-server
返回以下错误:docker:来自守护程序的错误响应:无效的绑定安装规范"c:dockerdata:/data/teamcity_server/datadir":无效模式:/data/teamcity_server/datadir.
采取不同的策略,我尝试按照说明进行操作 here - 我尝试 运行 执行以下命令:
docker run -it --name teamcity -p 8111:8111 sjoerdmulder/teamcity
终端指示它正在启动网络服务器,但我无法在本地主机或 localhost:8111 浏览到它(错误 ERR_SOCKET_NOT_CONNECTED 没有端口,并且 ERR_CONNECTION_REFUSED 与端口)。
由于带有 docker 运行 命令的网站说要通过 Docker 工具箱安装 Docker,我随后将其安装在他们指向的位置(here).然后我尝试了
docker-machine ip default
他们建议的命令,但没有用,错误 "Host does not exist: "default""。这是有道理的,因为该网站说 "default" 虚拟机将由 运行ning Docker Quickstart 创建,而我没有这样做,但他们不提供任何 link 到 Docker 快速入门,所以我不知道他们在说什么。
为了尝试获取容器所在的 IP 地址 运行,我尝试了这个命令
docker inspect --format='{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)
列出了 运行ning 容器的名称,每个容器后跟一个连字符,然后什么都没有。我也试过
docker ps -a
那也列出了 运行ning 容器,但没有给出 IP。另外,端口是空白的,状态显示 "exited (130) 4 minutes ago",所以看起来容器在启动后并没有保持活动状态。
我也再次尝试使用端口 80,希望该站点可以在本地主机上显示:
docker run -it --name teamcity2 -p 80:80 sjoerdmulder/teamcity
所以在这一点上,我完全感到困惑和封锁 - 我根本无法按照 hub.docker.com 上的说明启动服务器,而且我不知道如何浏览该站点那确实是从其他指令开始的。
如有任何帮助,我将不胜感激!
JetBrains 现在为 TeamCity 提供 official docker images。我建议从这些开始。
他们的 TeamCity server 图像中的示例命令如下所示
docker run -it --name teamcity-server-instance \
-v <path to data directory>:/data/teamcity_server/datadir \
-v <path to logs directory>:/opt/teamcity/logs \
-p <port on host>:8111 \
jetbrains/teamcity-server
这看起来很像您的第一次尝试。但是,c:\docker\data
是一个 Windows 文件路径。您说您要 运行 在 mac 上执行此操作,所以这绝对行不通。
一旦 TeamCity 启动,它应该在端口 8111 上可用。这就是命令的 -p 8111:8111
部分所做的。它将 machine 上的端口 8111 映射到 VM Docker 中的端口 8111,以便 Mac 创建到 运行 您的容器。 ERR_CONNECTION_REFUSED
可能是由多种原因造成的。两种最有可能的可能性是
- TeamCity 可能需要一些时间才能启动,也许您没有给它足够的时间。解决方案是等待。
-it
将以交互模式启动 TeamCity 容器。如果您退出 window 命令所在的终端 运行,容器也可能会终止并且无法访问。解决方案是在 detached 模式下不关闭 window 或 运行 容器。
这里有 Docker for Mac 和 Docker Toolbox 之间差异的很好概述:Docker for Mac vs. Docker Toolbox。您不需要两者,在大多数情况下,您会希望使用 Docker 代替 Mac 在本地进行测试。
我是 TeamCity 和 Docker 的新手。我正在努力获得一个带有 TeamCity 运行ning 的 Docker 容器并可在我的本地计算机上使用。我尝试了几种方法,但无济于事:
我按照说明 here. I then tried to run the following command, documented here 为 Mac 安装了 Docker,用于在 docker 中设置 teamcity:
docker run -it --name teamcity-server-instance \
-v c:\docker\data:/data/teamcity_server/datadir \
-v c:\docker\logs:/opt/teamcity/logs \
-p 8111:8111 \
jetbrains/teamcity-server
返回以下错误:docker:来自守护程序的错误响应:无效的绑定安装规范"c:dockerdata:/data/teamcity_server/datadir":无效模式:/data/teamcity_server/datadir.
采取不同的策略,我尝试按照说明进行操作 here - 我尝试 运行 执行以下命令:
docker run -it --name teamcity -p 8111:8111 sjoerdmulder/teamcity
终端指示它正在启动网络服务器,但我无法在本地主机或 localhost:8111 浏览到它(错误 ERR_SOCKET_NOT_CONNECTED 没有端口,并且 ERR_CONNECTION_REFUSED 与端口)。
由于带有 docker 运行 命令的网站说要通过 Docker 工具箱安装 Docker,我随后将其安装在他们指向的位置(here).然后我尝试了
docker-machine ip default
他们建议的命令,但没有用,错误 "Host does not exist: "default""。这是有道理的,因为该网站说 "default" 虚拟机将由 运行ning Docker Quickstart 创建,而我没有这样做,但他们不提供任何 link 到 Docker 快速入门,所以我不知道他们在说什么。
为了尝试获取容器所在的 IP 地址 运行,我尝试了这个命令
docker inspect --format='{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)
列出了 运行ning 容器的名称,每个容器后跟一个连字符,然后什么都没有。我也试过
docker ps -a
那也列出了 运行ning 容器,但没有给出 IP。另外,端口是空白的,状态显示 "exited (130) 4 minutes ago",所以看起来容器在启动后并没有保持活动状态。
我也再次尝试使用端口 80,希望该站点可以在本地主机上显示:
docker run -it --name teamcity2 -p 80:80 sjoerdmulder/teamcity
所以在这一点上,我完全感到困惑和封锁 - 我根本无法按照 hub.docker.com 上的说明启动服务器,而且我不知道如何浏览该站点那确实是从其他指令开始的。
如有任何帮助,我将不胜感激!
JetBrains 现在为 TeamCity 提供 official docker images。我建议从这些开始。
他们的 TeamCity server 图像中的示例命令如下所示
docker run -it --name teamcity-server-instance \
-v <path to data directory>:/data/teamcity_server/datadir \
-v <path to logs directory>:/opt/teamcity/logs \
-p <port on host>:8111 \
jetbrains/teamcity-server
这看起来很像您的第一次尝试。但是,c:\docker\data
是一个 Windows 文件路径。您说您要 运行 在 mac 上执行此操作,所以这绝对行不通。
一旦 TeamCity 启动,它应该在端口 8111 上可用。这就是命令的 -p 8111:8111
部分所做的。它将 machine 上的端口 8111 映射到 VM Docker 中的端口 8111,以便 Mac 创建到 运行 您的容器。 ERR_CONNECTION_REFUSED
可能是由多种原因造成的。两种最有可能的可能性是
- TeamCity 可能需要一些时间才能启动,也许您没有给它足够的时间。解决方案是等待。
-it
将以交互模式启动 TeamCity 容器。如果您退出 window 命令所在的终端 运行,容器也可能会终止并且无法访问。解决方案是在 detached 模式下不关闭 window 或 运行 容器。
这里有 Docker for Mac 和 Docker Toolbox 之间差异的很好概述:Docker for Mac vs. Docker Toolbox。您不需要两者,在大多数情况下,您会希望使用 Docker 代替 Mac 在本地进行测试。