Dockerfile应该和应用代码放在一起还是应该单独管理?

当前公司正在准备使用Docker来发布应用,其中一个争论很大的问题是:Dockerfile应该放在哪里?


项目负责人主要观点:Dockerfile只是一个image build描述文件,与应用本身没有太大联系,也会增加开发人员的学习成本,而且公司应用多数都是统一的技术架构,应该提供统一Dockerfile文件并单独管理


Docker运维人员主要观点:公司应用上百个,运维没有这么大的精力去一个个了解应用的部署方式,而且Dockerfile本身就是项目的构建脚本,是项目的一部分

请问,各位的观点是什么呢?

猪小花1号提问于 2019-01-08 15:26
1 个回答
  • 未来已来2019-01-08 15:28

    从项目成功的角度,需要的是建立 DevOps 文化


    引入容器技术,容器价值的最大化,应该是实现 DevOps 。既然使用 Dockerfile,而不是直接通过保存镜像的方式来生成镜像,相信团队已经认识到环境配置和环境部署代码化带来的便利性。何妨让每个开发人员仅仅多做 5% 的工作,以节约运维 200% 的工作,并且不容易出错


    把环境的部署提前到开发阶段来做,开发人员完代码的时候,就关心环境的配置,生成容器镜像,诚然会增加每个开发人员的工作量,但是每个模块的开发人员,仅仅维护自己模块的容器镜像,工作量不会特别大,而如果把所有的环境部署全部交给少数的运维人员,部署量会大很多,出错的概率也非常高。这相当于每个开发多了 5% 的工作量,从而减少了运维人员 200% 的工作量,还是划算的。


    运维开心,开发不愿意,这就需要构建 DevOps 的文化,从组织到流程,将开发和运维中间的墙打通,才能加快迭代速度,保障系统的稳定性。


    作为 2016 年就在公有云上实现 Serverless 容器服务的云计算服务商,我们相信和容器化、微服务和 DevOps 是三位一体的。