我的GitLab CI / CD具有dev
/ test
/ preprod
/ prod
环境。根据最佳做法,我:
首先,我认为针对所有环境进行唯一配置是容器的优势。但就我的情况而言,对于我的有角度的应用程序,我有很多开发依赖项(例如虚拟浏览器)用于测试目的,而不是在prod
环境中。
我应该如何组织我的容器?
答案 0 :(得分:1)
我创建一个基本映像并将其上传到我的注册表。它具有应在生产中使用的最少核心软件。
出于开发和测试目的,我基于基础映像创建了不同的Dockerfile。
例如,出于休息目的,我在基础映像上安装了测试框架,出于开发目的,我更改了基础映像内的用户和用户组ID。 (所以当我绑定挂载时,我在本地不会有权限问题)
出于CI目的,我也这样做。
当我要进行生产时,我从CI +配置中获取基本图像+工件进行生产,并将其捆绑在生产图像中。
长话短说,基于基础映像,每个contex都有一个基础映像(Dockerfile)和不同的Dockerfile。
通过此设置,我可以确保在所有环境中都具有相同版本的核心软件。