2017-08-14 88 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需要在同一個容器中。所以你可以更新答案 –