1

所以我有一个 Jenkins 主容器ali_jenkins_m设置,我使用数据卷容器ali_jenkins_data来存储 Jenkins 数据。

docker run -p 8080:8080 -p 50000:50000 --name ali_jenknins_master --volumes-from ali_jenkins_data -d ali_jenkins_m

我已经设置了一个 TFS 插件并映射了我们的一个 TFS 分支以将代码拉入 Jenkins 并构建。一切正常,直到我删除了我的詹金斯主容器 ali_jenkins_m 然后重新创建它。重新创建时,我仍然使用数据卷容器 ali_jenkins_data。我的所有数据都按预期持续存在,但我在 Jenkins 中遇到了从 TFS 构建的问题。

我得到的错误是:

  Creating workspace 'HUDSON-MCA Continuous Development Build-MASTER' owned by 'DOMAIN\tfsbuild'...
FATAL: com.microsoft.tfs.core.exceptions.TECoreException: The workspace HUDSON-Development Build-MASTER;tfsbuild already exists on computer **a4d8cdb6981d**.

a4d8cdb6981d 是我删除的 ali_jenkins_m 的容器 ID。我的新容器 ali_jenkins_m 有一个新的容器 ID。我环顾了安装座上的任何地方,以找出需要进行哪些更改才能使这项工作正常进行。

任何指针将不胜感激。

4

2 回答 2

2

所以,这是 TFS 的问题,与 Docker 或 Jenkins 无关。我通过运行这个命令解决了这个问题。

 tf workspace /delete /server:http://abc.xyz.eee:8080/tfs/IntlSysDev "HUDSON-MCA Continuous Development Build-MASTER";tfsbuild

我们解决此问题的另一种方法是在运行 docker run 命令时使用 -h 选项指定主机名。所以从上面我的 docker run 命令现在看起来像这样:

docker run -p 8080:8080 -p 50000:50000 -h jenkinsali --name ali_jenknins_master --volumes-from ali_jenkins_data -d ali_jenkins_m

这是一个更好的方法。现在我们不需要每次重新创建容器时都运行 tf workspace /delete 命令

于 2016-06-16T18:35:30.487 回答
1

我遇到了完全相同的问题(这是 TFS 工作区映射到命名计算机的问题 - 如果您重新启动 docker 容器,这将是相同的);我使用Team Foundation Sidekicks删除了工作区,它为您提供了一个很好的 GUI 来操作工作区(如果您有权访问,甚至是其他人的工作区)

  1. 打开 TFS Sidekick,转到工具 --> Workspace sidekick
  2. 指定工作区详细信息(将在 hudson 错误消息中)
  3. 点击搜索
  4. 找到有问题的工作区并将其删除。
  5. 再次开始您的构建,一切都应该很好!
于 2016-11-23T12:06:14.400 回答