如何管理不同环境开发、测试和生产的 Docker 镜像和存储库?

问题描述

我想为不同的环境(开发、测试和生产)创建 Docker 镜像。我确实创建了三个不同的 Dockerfile。

我发现以下两个选项可以在单个存储库或多个存储库中管理不同版本的图像。

Option 1: Build images with different tags and push it to the single docker repository?

Option 2: Create separate docker repository for each environment and push corresponding images?

我想知道什么是首选选项或任何其他想法?

解决方法

通常最好有一个单独的用于生产的注册表和一个单独的用于开发/测试的注册表。

这样做的原因是开发人员可以推送到开发/测试注册表,而 QA 团队可以从那里提取非生产映像以进行持续开发和测试。

这也有助于保持生产注册表的安全,并在开发人员将它们推送到共享注册表时防止由于名称冲突而导致不必要的覆盖。