我正在 Windows 10 pro 本地机器上部署 2 个 docker 容器(nginx 和 php fpm)。我可以正确执行php脚本。例如:http://localhost:8888/phpinfo.php --> 正确返回。但除了 php 脚本(例如图像、js 或 css)它给我找不到。例如:http://localhost:8888/image.jpg --> 未找到这里可能出了什么问题?这是我的 docker compose 文件:version: '3.7'services: # The Web Server web: container_name: emm_web build: context: ./ dockerfile: web.dockerfile volumes: - ../log/:/var/log ports: - 8888:80 # The PHP Application app: container_name: emm_app build: context: ./ dockerfile: app.dockerfile volumes: - ../www/:/var/www depends_on: - web environment: - "DB_PORT=3306" - "DB_HOST=database"这是我的 nginx vhost.conf:server { listen 80; index index.php index.html; root /var/www; error_log /var/log/nginx/error.log; access_log /var/log/nginx/access.log; location / { try_files $uri /index.php?$args; } location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass app:9000; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; }}
1 回答
阿晨1998
TA贡献2037条经验 获得超6个赞
您需要为 nginx 容器共享文件。尝试这个:
# The Web Server
web:
container_name: emm_web
build:
context: ./
dockerfile: web.dockerfile
volumes:
- ../log/:/var/log
# !! nginx need this volume !!
- ../www/:/var/www:ro
ports:
- 8888:80
该只读卷将使容器中的文件可用。
- 1 回答
- 0 关注
- 475 浏览
添加回答
举报
0/150
提交
取消