【问题标题】:Azure devops release pipeline - Specific docker images shared between environmentsAzure devops 发布管道 - 环境之间共享的特定 docker 映像
【发布时间】:2019-12-08 09:26:19
【问题描述】:

我有一个 Web 应用程序,我想使用 azure 管道对其进行 dockerise 和发布。 我已经能够构建和测试,但正在努力发布它。

构建管道(在由 VSTS 代理控制的构建服务器上):

1) Build using .net core
2) Run unit tests using .net core
3) Build docker image
4) Push to registry

这会自动触发我的发布管道。发布管道有两个阶段,分别是create releasedeploy release。 非 docker 方案是创建 DLL (create release) 并部署在 Web 服务器上 (deploy release)。我不确定这是否/如何适用于 docker 应用程序。

发布管道(在每个环境服务器上运行的单独发布代理):

Artifact (CI Build) => DEV => SIT => UAT => PROD

在每个环境中,我都会这样做:

1) stop and remove old image/container
2) pull 'latest' tag from repository
3) run new image in docker container.

问题: 如何创建一个单独的、特定于发布的 docker 映像,然后可以将其推送到每个环境,以及如何将 create releasedeploy release 拆分以完成此操作?

问题

    1234563 使用版本号/名称进行标记的原因是我可以在必要时重新部署以前的版本。
  • 我想阻止将所有发布映像存储在我的 DEV/SIT/UAT/PROD 服务器上。发布映像需要存在于注册表服务器中,以便我有一个中心位置可以从中提取它们。

【问题讨论】:

  • 您应该构建/推送特定版本的图像。但它将是构建版本,而不是发布版本。发布只是“构建”+“配置”。查看12factor.net
  • @user281921 好几天没有收到您的回复,能否分享一下您关于此问题的最新信息?如果您有任何疑虑,请随时在此处分享。

标签: docker azure-devops azure-pipelines


【解决方案1】:

解决您的问题

您的create-release 工作可能如下所示。

echo $CI_REGISTRY_PASSWORD | docker login -u $CI_REGISTRY_USER --password-stdin $CI_REGISTRY
docker build -t $CI_REGISTRY_IMAGE -t $CI_REGISTRY_IMAGE:$VERSION .
docker push $CI_REGISTRY_IMAGE
docker push $CI_REGISTRY_IMAGE:$VERSION

您的deploy release 工作可能如下所示。

echo $DOCKER_HUB_PASSWORD | docker login -u $DOCKER_HUB_USER --password-stdin $REGISTRY_URL
docker pull $CI_REGISTRY_IMAGE
docker pull $CI_REGISTRY_IMAGE:$VERSION
docker tag $CI_REGISTRY_IMAGE $DOCKER_HUB_USER/crystal-skull
docker tag $CI_REGISTRY_IMAGE:$VERSION $DOCKER_HUB_USER/$IMAGE_NAME:$VERSION
docker push $DOCKER_HUB_USER/$IMAGE_NAME
docker push $DOCKER_HUB_USER/$IMAGE_NAME:$VERSION

解决您的问题

是的,您可以使用特定版本号标记注册表映像。这是包括 Docker Hub 在内的 Docker 注册表的标准。

【讨论】:

    猜你喜欢
    • 2021-03-25
    • 2021-07-13
    • 2021-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多