【问题标题】:TFS workspace with Jenkins Docker container带有 Jenkins Docker 容器的 TFS 工作区
【发布时间】:2016-06-16 17:41:31
【问题描述】:

所以我有一个 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。我环顾了安装座上的任何地方,以找出需要进行哪些更改才能使这项工作正常进行。

任何指针将不胜感激。

【问题讨论】:

    标签: jenkins tfs docker data-containers


    【解决方案1】:

    所以,这是 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 命令

    【讨论】:

      【解决方案2】:

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

      1. 打开 TFS Sidekick,转到工具 --> Workspace sidekick
      2. 指定工作区详细信息(将在 hudson 错误消息中)
      3. 点击搜索
      4. 找到有问题的工作区并将其删除。
      5. 再次开始构建,一切都会好起来的!

      【讨论】:

        猜你喜欢
        • 2018-06-21
        • 1970-01-01
        • 1970-01-01
        • 2018-07-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-27
        相关资源
        最近更新 更多