Docker nginx-未找到文件

Docker nginx-未找到文件,docker,nginx,Docker,Nginx,我已经通过nginx上的docker安装了我的应用程序。(Laravel项目),但当尝试将nginx root从var/www更改为var/www/public时,它返回“未找到文件” 我在下面分享我的代码: 我的app.conf: server { listen 80; index index.php index.html; root /var/www/public; location / { try_files $uri /index.php

我已经通过nginx上的docker安装了我的应用程序。(Laravel项目),但当尝试将nginx root从var/www更改为var/www/public时,它返回“未找到文件”

我在下面分享我的代码:

我的app.conf:

server {
    listen 80;
    index index.php index.html;
    root /var/www/public;

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

    server_tokens off;
}
我的docker-compose.yml

version: '3.7'

services:

  app:
    build:
      context: docker/php
      dockerfile: Dockerfile
    container_name: app
    image: jjuanrivvera99/laravel:mysql-alpine
    restart: always
    depends_on:
      - redis
    volumes:
      - ./:/var/www
      - ./docker/php/local.ini:/usr/local/etc/php/conf.d/local.ini
    networks:
      - app-network

  web:
    image: nginx:alpine
    restart: always
    depends_on:
      - app
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./:/var/www
      - ./docker/nginx/:/etc/nginx/conf.d/
    networks:
      - app-network

  queue:
    restart: always
    depends_on:
      - redis
    image: jjuanrivvera99/laravel:mysql-alpine
    environment:
      CONTAINER_ROLE: "queue"
    volumes:
      - "./:/var/www/"
    networks:
      - app-network

  scheduler:
    restart: always
    depends_on:
      - redis
    image: jjuanrivvera99/laravel:mysql-alpine
    environment:
      CONTAINER_ROLE: "scheduler"
    volumes:
      - "./:/var/www/"
    networks:
      - app-network

  node:
    image: jjuanrivvera99/node:alpine
    restart: always
    build:
      context: docker/node
      dockerfile: Dockerfile
    container_name: node
    volumes:
      - ./:/var/www

  mysql:
    image: mysql:5.7.22
    restart: always
    ports:
      - "3306:3306"
    environment:
      MYSQL_DATABASE: mdpocr
      MYSQL_ROOT_PASSWORD: Bugbytes13**
    volumes:
      - mysql-data:/var/lib/mysql/
      - ./docker/mysql/my.cnf:/etc/mysql/my.cnf
    networks:
      - app-network

  redis:
    image: redis
    restart: always
    ports:
      - 6379:6379
    volumes:
      - redis-data:/data
    networks:
      - app-network

networks:
  app-network:
    driver: bridge

volumes:
  mysql-data:
    driver: local

  redis-data:
    driver: local
怎么了


当我将root更改为/var/www时,它运行良好。但当我将其更改为/var/www/public时,它返回“未找到文件”。

是您创建了
/var/www/public
这个目录,还是您的项目创建了它?我的文件位于/var/www。是的,我创建了/var/www/public