Docker 用于 nginx 和 php-fpm
Docker for nginx and php-fpm
我开始使用 Docker
和 docker-compose
我的第一步是构建一个包含 2 个容器的堆栈:1 个用于 nginx,1 个用于 php-fpm
有了这个配置,它就可以工作了
version: '3.3'
services:
web:
image: nginx
ports:
- "9090:80"
volumes:
- ./conf/default.conf:/etc/nginx/conf.d/default.conf:ro
- ./content:/usr/share/nginx/html:ro
links:
- php
php:
image: php:7.1.8-fpm
volumes:
- ./content:/usr/share/nginx/html:ro
在 /content
我有一个 index.html
和 phpinfo.php
我可以在浏览器中获取这两个页面。
但我不明白为什么我必须将所有页面都放在两个容器中?
如果我不设置 php service
的音量,则显示 index.html 而不是 phpinfo.php(未找到文件。)
如果我不为 web service
设置音量,nginx index.html 会显示但不会显示 phpinfo.php(404 错误)。
所以现在如果我想部署一个 wordpress 站点,我将不得不复制两个容器中的所有文件?
配置错误。好的做法是将所有进程分开,所以你应该有 3 个服务:nginx、php-fpm 和 php。源代码应该只在 php 容器内。
我开始使用 Docker
和 docker-compose
我的第一步是构建一个包含 2 个容器的堆栈:1 个用于 nginx,1 个用于 php-fpm
有了这个配置,它就可以工作了
version: '3.3'
services:
web:
image: nginx
ports:
- "9090:80"
volumes:
- ./conf/default.conf:/etc/nginx/conf.d/default.conf:ro
- ./content:/usr/share/nginx/html:ro
links:
- php
php:
image: php:7.1.8-fpm
volumes:
- ./content:/usr/share/nginx/html:ro
在 /content
我有一个 index.html
和 phpinfo.php
我可以在浏览器中获取这两个页面。
但我不明白为什么我必须将所有页面都放在两个容器中?
如果我不设置 php service
的音量,则显示 index.html 而不是 phpinfo.php(未找到文件。)
如果我不为 web service
设置音量,nginx index.html 会显示但不会显示 phpinfo.php(404 错误)。
所以现在如果我想部署一个 wordpress 站点,我将不得不复制两个容器中的所有文件?
配置错误。好的做法是将所有进程分开,所以你应该有 3 个服务:nginx、php-fpm 和 php。源代码应该只在 php 容器内。