我正在使用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在项目/路径中。
我错了?
答案 0 :(得分:3)
我认为你需要在compose文件中的nginx容器中使用volumes_from,现在你已经在nginx中了:
volumes:
- ./project/:/usr/share/nginx/html/
在php中
volumes:
- ./project/:/var/www/html/
他们应该是一样的。