2017-08-14 45 views
0

我开始使用Dockerdocker-compose泊坞窗为nginx的和PHP-FPM

我的第一步是建立一个堆栈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站点,我将不得不复制两个容器中的所有文件?

回答

1

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

+0

好的,谢谢。所以PHP容器应该是一个数据容器? – tweetysat

+0

是的,PHP的数据,PHP-fpm就像php和nginx之间的“桥梁”,NGINX处理请求。 – mitch

+0

@mitch,实际上2个服务,nginx和php + fpm,因为php和fpm需要在同一个容器中。所以你可以更新答案 –