Docker 用于 nginx 和 php-fpm

Docker for nginx and php-fpm

我开始使用 Dockerdocker-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.htmlphpinfo.php

我可以在浏览器中获取这两个页面。

但我不明白为什么我必须将所有页面都放在两个容器中?

如果我不设置 php service 的音量,则显示 index.html 而不是 phpinfo.php(未找到文件。)

如果我不为 web service 设置音量,nginx index.html 会显示但不会显示 phpinfo.php(404 错误)。

所以现在如果我想部署一个 wordpress 站点,我将不得不复制两个容器中的所有文件?

配置错误。好的做法是将所有进程分开,所以你应该有 3 个服务:nginx、php-fpm 和 php。源代码应该只在 php 容器内。