首页 文章

Docker每次构建/推送 - 对于持续部署是否实用?

提问于
浏览
4

如果每天部署5-10次,那么每次部署时完全重建和推送docker镜像是否真的很实用?

我承认CircleCI的_2723807中提到的好处,即:

请注意,Elastic Beanstalk还允许您部署Dockerfile和相关的源代码而不是构建的映像,但是在CircleCI上预构建映像并在其上运行某种形式的验证可以使您的部署更具确定性,因为您删除了构建环境作为测试和 生产环境 之间不同的变量 .

但是,一旦包含所有依赖项和源代码,我们完全构建的webapp映像接近1GB . 我只是看不到如何部署高达200GB /月(即每天10次提交,持续部署)是多么实际,而实际上99%的构建之间没有变化 . 也就是说它可能只是1k的HTML,JS或CSS被改为添加功能 . 我更喜欢一种方法,其中docker镜像包含很少更改的软件,其余的作为捆绑包的一部分被压缩 . 这仍然会产生一个自包含的部署文件(没有需要下载的其他依赖项),但会大大减少构建时间和带宽 .

1 回答

  • 2

    当前接受的方法是在机器映像中包含具有依赖关系,操作系统等的基本Docker镜像 . 将Docker镜像用作Dockerfile中的 FROM 行 . 这将利用Docker的图像层并仅下载差异 .

    您可能仍希望在子Dockerfile中安装依赖项,因为它们会随着时间的推移而改变,但是尝试将它们中的大多数保留在基本映像中,以便下载更少 .

相关问题