我有GazLab CI / CD的dev
/ test
/ preprod
/ prod
环境。根据最佳实践,我应该:
首先,我认为对所有环境都有一个独特的配置是容器的强度。但在我的情况下,使用我的角度应用程序,我有很多开发依赖项(例如虚拟浏览器)用于测试目的,而不是在prod
环境中。
我该如何组织我的容器?
我创建一个基本映像并将其上传到我的注册表。它具有应该在生产中的最小核心软件。
出于开发和测试目的,我基于基本映像创建不同的Dockerfiles。
例如,出于静止目的,我在基础映像上安装测试框架,为了开发目的,我在基本映像内更改用户的用户和组ID。 (所以当我绑定mount我不会在我的本地有权限问题)
出于CI目的,我也这样做。
当我想推向生产时,我从CI +配置中获取基本图像+工件进行生产,并将它们捆绑在生产图像中。
简而言之,一个基本图像(Dockerfile)和基于基本图像的每个上下文的不同Dockerfile。
通过此设置,我可以确定我将在所有环境中使用相同版本的核心软件。