2016-08-11 68 views
2

我正在測試docker與Nginx和php-fpm組合,但是這個失敗了。 我的搬運工,compose.yml:Docker撰寫:Nginx和PHP-FPM不能正常工作

version: '2' 

services: 

    nginx: 
    container_name: nginx 
    build: 
     context: ./dockerfiles/nginx/ 
     dockerfile: Dockerfile 
    volumes: 
     - ./project/:/usr/share/nginx/html/ 
    ports: 
     - "8000:80" 
    links: 
     - php 

    php: 
    container_name: php-fpm 
    image: php:7-fpm 
    volumes: 
     - ./project/:/var/www/html/ 
    ports: 
     - "9000:9000" 

這是我dockerfile Nginx的:

FROM nginx:latest 
COPY config/default.conf /etc/nginx/conf.d/ 

而且dafault.conf文件:

server { 
    listen 80; 

    server_name localhost; 

    root /usr/share/nginx/html; 

    location/{ 
     try_files $uri /index.php$is_args$args; 
    } 

    location ~ ^/.+\.php(/|$) { 
     fastcgi_pass php:9000; 
     include fastcgi_params; 
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
    } 
} 

當我嘗試本地主機:8000返回以下消息:

「找不到文件」。

但是,index.php位於項目/路徑中。

我錯了嗎?

回答

3

我認爲你需要在撰寫文件中使用volumes_from在你的nginx的容器,現在你有nginx的:

volumes: 
    - ./project/:/usr/share/nginx/html/ 

自PHP

volumes: 
    - ./project/:/var/www/html/ 

他們應該是相同的。

+0

問題是兩者必須指向相同的體積。例如:/ var/www/html – alvarezsh