Docker撰写:Nginx和PHP-FPM无法正常工作

时间:2016-08-11 15:58:15

标签: php nginx docker-compose

我正在使用Nginx和php-fpm测试docker compose,但是这个失败了。 我的docker-compose.yml:

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;
    }
}

当我尝试localhost:8000时会返回以下消息:

“找不到档案。”

但是,index.php在项目/路径中。

我错了?

1 个答案:

答案 0 :(得分:3)

我认为你需要在compose文件中的nginx容器中使用volumes_from,现在你已经在nginx中了:

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

在php中

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

他们应该是一样的。