PHPdocker最好的方法。 在Docker内部或外部构build应用程序?

我有PHP的应用程序,如框架,库等manu依赖项。所有这些依赖关系由composer php解决。 我已经看到了两种方式来dockerize apllication

第一种方式(build造出docker)使composer install在主机上,并将完整的工程目录复制到容器后。

第二种方法(在continer内部构build)添加到Dockerfile RUN composer install ,并将parsing依赖关系parsing为docker

我认为第一个更接近docker的方式。 但是第二种方式有一些优点:

  • 它比主机更独立。 主机不需要php,composer。
  • 我可以添加到Dockerfile的git clone <my project>和容器将是一个足够的。 它可以build立在任何主机与docker。 这意味着一个项目build设将是高度便携的

你觉得怎么样更可取?

如果您的Dockerfile中RUN composer installRUN composer install ,则表示您已在您的泊坞窗图像中安装了composer php。 这不是生产状态下你想要的东西。

所以是的,我会说你必须在外部构build你的应用程序,然后build立你的形象。 请记住,如果您打算在hub.docker.com上提供该图片,请不要在图片中留下任何秘密。

好文章: http : //www.dylanlindgren.com/docker-for-the-laravel-framework/