【问题标题】:Service Fabric doesn't run a docker pull on deploymentService Fabric 不会在部署时运行 docker pull
【发布时间】:2018-04-08 06:52:28
【问题描述】:

我已设置 VSTS 以使用 Docker 来宾容器部署 Service Fabric 应用。一切顺利,但 Service Fabric 没有下载我的映像的最新版本,似乎没有执行 docker pull。

我已使用“docker pull”命令添加了“Service Fabric PowerShell 脚本”,但这仅在其中一个节点上运行。

有没有办法在部署期间运行 VSTS 或 Service Fabric 中的 powershell 脚本/命令,以跨所有节点运行命令以执行 docker pull?

【问题讨论】:

  • 您是否使用了明确的版本标签?不要依赖“最新”
  • 我不会,试试看!
  • 一个简单的方法;在 VSTS 中,在“推送服务”任务中,在 Additional Image Tags 字段中添加 $(Build.BuildId) 以标记您的图像。
  • 那么如何在ImageName中的ServiceManifest.xml中指定标签呢?我已经看到你不能使用应用程序参数
  • 您可以使用标记器来替换发布管道中的值。我的最爱之一是github.com/qetza/vsts-replacetokens-task#readme

标签: powershell azure-devops azure-service-fabric


【解决方案1】:
  1. 请使用明确的版本标签。不要依赖“最新”。在 VSTS 中执行此操作的一种简单方法是在“推送服务”任务中添加 $(Build.BuildId) 字段 Additional Image Tags 以标记您的图像。

  2. 接下来,您可以使用标记器替换发布管道中的 ServiceManifest.xml 图像标记值。我的最爱之一是this one。

【讨论】:

    【解决方案2】:

    要将 docker 容器部署到 Service Fabric,您必须提供 Docker Compose 文件或带有清单的 Service Fabric 应用程序包。

    对于容器,Service Fabric 托管系统控制节点上的 docker 主机来运行容器。

    对于 VSTS 部署,两个路径都有一个 Service Fabric Deploy 任务和一个 Service Fabric Compose Deploy 任务。

    Service Fabric 的容器快速入门: 在 Windows 上见她:https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-quickstart-containers 她的 Linux:https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-quickstart-containers-linux

    【讨论】:

    • 我创建了两个发布管道,一个用于您提到的每个任务。 docker compose 版本会执行 docker pull,而另一个则不会。那么,知道为什么第二个不做 docker pull 吗?还是这是设计使然?
    • 抱歉误读。在应用程序完成后,docker pull 由集群中的 docker 主机完成。你在哪里看到码头工人拉?在发布日志中?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-01
    • 2016-09-30
    • 2018-03-06
    • 2020-03-11
    • 2017-08-06
    • 2016-12-07
    • 1970-01-01
    相关资源
    最近更新 更多