所以我有一个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并构建。一切顺利,直到我删除了我的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。我的新conatiner ali_jenkins_m有一个新的容器ID。我环顾四周在山上到处寻找需要改变的东西来使这项工作。
任何指针都将受到赞赏。
答案 0 :(得分: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命令答案 1 :(得分:1)
我遇到了完全相同的问题(这是TFS工作空间映射到命名计算机的问题 - 如果重新启动docker容器,它将是相同的);我使用Team foundation sidekicks删除了工作区,这为您提供了一个很好的GUI来操作工作区(如果您有访问权限,甚至是其他人的工作区)