我需要将php-fpm和nginx结合在一个dockerfile中进行 生产环境 部署 .
所以最好是:
(1)使用php启动dockerfile:7.1.8-fpm然后在它上面安装nginx图像层?
(2)或者你建议使用nginx图像,然后使用apt-get安装php-fpm?
PS:我没有用于 生产环境 部署的docker-compose构建选项 . 在我的开发环境中,我已经使用docker-compose并从两个图像轻松构建多容器应用程序 . 我们的组织devop不支持基于docker-compose的prod环境部署 .
2 回答
Nginx安装比PHP容易得多,因此您可以更轻松地将Nginx安装到即用型官方PHP映像中 . 下面是示例Dockerfile,显示如何通过安装几个PHP扩展来达到目标:
nginx-site.conf
文件包含您的nginx http主机配置 . 以下示例适用于Symfony应用程序:entrypoint.sh
将在容器启动时运行nginx和php-fpm(否则只有php-fpm将作为官方PHP映像的默认操作启动):当然,这不是最佳实践的最佳方式,但我希望这是你的问题的答案 .
你应该部署两个容器,一个用
fpm
,另一个用nginx
,你应该链接它们 . 即使您可以使用supervisor
来监视同一容器中的多个进程,Docker
philosophy也是每个容器有一个进程 .就像是:
使用
site.conf
(由http://geekyplatypus.com/dockerise-your-php-application-with-nginx-and-php7-fpm/羞耻地启发)