如何使用 TeamCity 在 Azure Service Fabric 中自动部署 Docker 容器?

Posted

技术标签:

【中文标题】如何使用 TeamCity 在 Azure Service Fabric 中自动部署 Docker 容器?【英文标题】:How to deploy Docker container automated in Azure Service Fabric with TeamCity? 【发布时间】:2019-01-30 18:36:34 【问题描述】:

我想在 Azure Service Fabric 中部署 Docker 容器。为此,我实现了一个 Node.js 服务并编写了我的 dockerfile。我在本地机器上使用 Docker 测试了该服务,它工作正常。我的下一步是在 TeamCity 上构建 Docker 映像。我为此使用了 Docker 运行器,它也可以正常工作。现在我想将此映像部署到 Azure Service Fabric 群集。但我没有找到任何文件。

我的想法是使用构建步骤中的工件(docker 映像),并将其直接部署到 Service Fabric 群集。这可能吗?如果没有,我如何在那里部署我的图像?

感谢您的帮助!

【问题讨论】:

【参考方案1】:
    使用您的构建服务器创建一个container image 从构建服务器,将映像推送到容器注册表,例如 Docker Hub 或 Azure Container Registry。 部署使用该映像运行container 的Service Fabric 服务。

【讨论】:

您能否更详细地解释一下容器注册表和服务结构之间的步骤?我希望服务结构检测到我的容器注册表中的每一个更改并部署我的新容器。 当然,确保你推送的每个镜像版本都有一个唯一的标签。例如,这可能是您构建的 ID。在发布管道中,您在服务清单(或 docker-compose yaml 文件)中指定该标记。当您部署更新的服务版本时,SF 将升级到更新的版本。 SF 不会自行检测映像版本的更改。 docs.microsoft.com/en-us/azure/service-fabric/… 好吧,这听起来很简单。我必须在哪里触发服务更新?在 SF explorer 中手动还是在哪里? 这将是 CI/CD 管道的最后一步(之一),例如使用 PowerShell 或 CLI docs.microsoft.com/en-us/powershell/module/servicefabric/… 或 docs.microsoft.com/en-us/azure/service-fabric/… 好的,最后一个问题:在我可以将容器部署到 SF 之前,我必须手动设置一个带有 VS 的容器的 SF 应用程序?【参考方案2】:

要将容器部署到 SF,您必须部署一个服务结构应用程序。

应用程序只是一个清单,它定义了构建应用程序的服务和容器。

这些链接将引导您完成:

Create your first Service Fabric container application on Windows Create your first Service Fabric container application on Linux

目前没有在 SF 上设置应用程序的情况下无法部署容器,我认为他们不会很快添加类似 docker docker run xyz 或 kubernetes kubectl run --image=nginx nginx-app 的功能。

应用程序是定义资源如何安排在一起的 SF 的基础。

也许他们可以提供一个为独立容器自动创建应用程序的功能,如果你真的需要这个,我建议你在他们的GitHub上创建一个功能请求

【讨论】:

我阅读了这些示例,但我认为有一种方法无需使用 Visual Studio 创建 SF 应用程序。我搜索了一种直接部署服务的方法。 我添加了更多信息

以上是关于如何使用 TeamCity 在 Azure Service Fabric 中自动部署 Docker 容器?的主要内容,如果未能解决你的问题,请参考以下文章

TeamCity 和 Office365/Windows Active Directory 集成

在 SQL Azure 中如何创建只读用户

Windows Azure Pack 快速部署AD环境准备及Sql Ser安装

如何在 java 中获取 Teamcity 配置的值?

如何在teamcity中覆盖maven项目版本

如何在 TeamCity 中构建 git 标签?