aru*_*pan 7 nexus continuous-deployment docker swarm docker-image
我们的应用程序已容器化,并使用docker swarm作为协调器。我想了解我们如何将docker映像从dev,qa,uat推广到生产环境。例如,如果我在dev中创建的映像为test:10(10是jenkins生成的内部版本号)。如何将相同的形象推广到质量保证,生产和生产。我们当前正在使用NEXUS作为docker存储库。我不明白的是,我将如何提取在开发环境中使用过的确切图像。有人能帮忙吗。我长期与逻辑斗争:(
我刚刚写了一篇关于类似主题的博客文章。它特定于 Azure DevOps YAML 管道的自动化,但涵盖了图像提升概念。看看richminchuk.io。否则,您可以通过重新标记图像并推送来将图像从一个 docker 图像存储库提升到另一个:
docker build -t my-test .
docker tag my-test your-image-repository-dev/test:10
docker login "your-image-repository-url"
docker push your-image-repository-dev/test:10
# ... deploy/test your image in dev
docker pull your-image-repository-dev/test:10
docker tag your-image-repository-dev/test:10 \
your-image-repository-qa/test:10
docker push your-image-repository-qa/test:10
Run Code Online (Sandbox Code Playgroud)
然后,您将在 QA docker 映像存储库中拥有相同的映像。这对于通过基本单元/功能/用户验收测试的图像来说是有意义的,这些测试与没有通过的图像不同!这里的关键概念是您重新标记和推送图像的时间。此外,为每个 docker 镜像存储库指定镜像拉取凭证可以帮助您限制可以实际用于特定环境的镜像。
上述策略的替代方案是,您可能没有单独的 docker 镜像存储库,并且可以选择更改镜像名称而不是存储库。在这种情况下,您可以执行以下操作。
docker build -t my-test .
docker tag my-test your-image-repository/test:10
docker login "your-image-repository-url"
docker push your-image-repository/test:10
# ... deploy/test your image in dev
docker pull your-image-repository/test:10
docker tag your-image-repository/test:10 \
your-image-repository/test-qa:10
docker push your-image-repository/test-qa:10
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
756 次 |
| 最近记录: |