如果您每天部署 5-10 次,那么每次部署时完全重建和推送 docker 映像是否真的可行?
我承认 CircleCI 的Docker 持续集成和交付中提到的好处,即:
请注意,Elastic Beanstalk 还允许您部署 Dockerfile 和关联的源代码而不是构建的映像,但是在 CircleCI 上预先构建映像并对其运行某种形式的验证可以让您的部署更具确定性,因为您删除了构建环境作为测试和生产之间不同的变量。
但是,一旦包含所有依赖项和源代码,我们完全构建的 webapp 映像接近 1GB。我只是不明白部署高达 200GB/月(即每天 10 次提交,持续部署)的实际情况,实际上 99% 的数据在构建之间没有变化。即,它可能只是价值 1k 的 HTML、JS 或 CSS 被更改以添加功能。我更喜欢一种方法,其中 docker 映像包含很少更改的软件,其余的作为捆绑包的一部分被压缩。这仍然会产生一个独立的部署文件(不需要下载进一步的依赖项),但会大大减少构建时间和带宽。