微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

用于环境版本控制的Docker映像存储库名称或标记

如何解决用于环境版本控制的Docker映像存储库名称或标记

希望获得有关创建可在多个环境中部署的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用作构建/部署管道,因此可以轻松地附加构建/发布变量。

任何建议都值得赞赏。

解决方法

通常,您应该在所有环境中使用相同的映像,以便将映像推送到生产环境时,您正在运行在测试环境中运行的确切代码。您也不需要标签中的“ release”之类的文本,如果您查看标准的Docker Hub映像,该标签通常只是一个数字就足够了。

app/Http/Middleware/VerifyCsrfToken.php

如果您的CI系统可以生成顺序的内部版本号,则可以正常工作。如果开发人员自己构建测试图像,则使用时间戳或源代码管理提交ID可能会更方便。

my-service:10

如果您真的需要在不同的环境中使用不同的版本,则标准Docker Hub映像会在标签中编码诸如此类的详细信息。例如,python image具有变体my-service:20201111 my-service:g52fc7a0 python:3.9-alpine(Debian)。顶级映像名称通常是注册表中的一个“单元”。您可能需要使用Terraform之类的工具在AWS ECR中创建新的映像名称,但是一旦映像名称存在,就可以任意推送许多标签。

python:3.9-buster

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?