2016-08-11 71 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