Docker 用于环境版本控制的图像存储库名称或标签
Docker image repository name or tag for environment versioning
希望得到一些关于创建 Docker 图像以在多个环境中部署的最佳方法的建议。假设我们有 3 个环境 - DEV、UAT 和 PRD,最好相应地命名图像以及版本标签,即
my-service-dev:release-10
my-service-uat:release-8
my-service-prd:release-6
或保持存储库相同但使用标签:
my-service:dev-release-10
my-service:uat-release-8
my-service:prd-release-6
我们将 Bamboo 用作 build/deploy 管道,因此可以轻松附加 build/release 变量。
非常感谢任何建议。
通常您应该在所有环境中使用相同的图像,这样当您将图像推送到生产环境时,您 运行 与您在测试环境中 运行 的代码完全相同。您也不需要在标签中使用“release”之类的文本,如果您查看标准 Docker Hub 图像,标签只是一个数字就足够了。
my-service:10
如果您的 CI 系统可以生成连续的内部版本号,这些就可以正常工作。如果开发人员自己构建测试图像,使用时间戳或源代码控制提交 ID 可能更方便。
my-service:20201111
my-service:g52fc7a0
如果您确实需要在不同的环境中构建不同的版本,标准 Docker 集线器图像会像标签中那样编码细节。例如,python
image 有变体 python:3.9-alpine
和 python:3.9-buster
(Debian)。顶级镜像名称通常是注册表中的一个“单元”;您可能需要使用像 Terraform 这样的工具在 AWS ECR 中创建新的图像名称,但是一旦图像名称存在,您就可以推送任意多个标签。
my-service:10-test
my-service:11-prod
希望得到一些关于创建 Docker 图像以在多个环境中部署的最佳方法的建议。假设我们有 3 个环境 - DEV、UAT 和 PRD,最好相应地命名图像以及版本标签,即
my-service-dev:release-10
my-service-uat:release-8
my-service-prd:release-6
或保持存储库相同但使用标签:
my-service:dev-release-10
my-service:uat-release-8
my-service:prd-release-6
我们将 Bamboo 用作 build/deploy 管道,因此可以轻松附加 build/release 变量。
非常感谢任何建议。
通常您应该在所有环境中使用相同的图像,这样当您将图像推送到生产环境时,您 运行 与您在测试环境中 运行 的代码完全相同。您也不需要在标签中使用“release”之类的文本,如果您查看标准 Docker Hub 图像,标签只是一个数字就足够了。
my-service:10
如果您的 CI 系统可以生成连续的内部版本号,这些就可以正常工作。如果开发人员自己构建测试图像,使用时间戳或源代码控制提交 ID 可能更方便。
my-service:20201111
my-service:g52fc7a0
如果您确实需要在不同的环境中构建不同的版本,标准 Docker 集线器图像会像标签中那样编码细节。例如,python
image 有变体 python:3.9-alpine
和 python:3.9-buster
(Debian)。顶级镜像名称通常是注册表中的一个“单元”;您可能需要使用像 Terraform 这样的工具在 AWS ECR 中创建新的图像名称,但是一旦图像名称存在,您就可以推送任意多个标签。
my-service:10-test
my-service:11-prod