正在build造一个自包含的docker集装箱正确的生产方式来做到这一点

我inheritance了我以前的开发团队的任务,纠正他所犯的任何错误。

目前我们的PHP开发人员正在将他们的APP部署在一个docker容器中,该容器由dockerfile中的以下内容组成:

  • PHP-5.6fpm或PHP-7.0-fpm作为基础
  • 安装他们的PHP扩展
  • 安装nginx-lite
  • 安装supervisord
  • 复制nginx.conf
  • 复制supervisor.conf

内部主pipe,我们将有2个命令:一个用于nginx和一个用于php。 然后主pipe将成为D​​ockerfile末尾的默认CMD。

容器内的/ app目录是应用程序的一个副本。

我们部署在一台m3 ec2服务器上并启动容器。 在ec2服务器里面有nginx正在监听某个端口。 我们已经附加了一个LB来监听应用程序端口映射的容器:即,app1在端口8001上,app2在端口8002上,等等。我们使用其他服务器来为应用程序提供服务(比如RDS for db,redis由elatic-cache等完成)。

目前这些容器正在工作 – 但是 – 我想知道是否通过黑客和斜杠工作,如果这些容器实际上是适当的。

问题: – 我以前的开发人员在创build应用程序容器时是否正确? – 如果答案是否定的,那么为了实现正确的生产docker部署,我们最终会把Kubernetes

那么这是绝对错误的,并击败了Docker的目的。 它应该是一个应用程序/服务每个容器,但是,在你的情况下,你有全部1个容器。 我build议你把服务分成特定的容器。

此外,你不会build造容器来推动生产。 他们应该已经build立在以前的环境中,不pipe是什么样的(产前,开发,testing)。

现在你已经掌握了这个方法,这将会增加扩展的难度,并且每次在每个环境中都浪费时间来构build容器,有时候这样做可能会失去同步,因为你可以构build开发/testing/ pre-prod容器在某种程度上和不同的生产。