Докер Laravel возвращает 404 найденных

#laravel #docker

Вопрос:

Я установил докер с nginx mysql laravel с php7.4

но он возвращает 404 не найденных, на домашней странице laravel (и на всех маршрутах)

Вот мой докер-compose.yml

Я использовал установку composer, запуск npm и т. Д. все это было установлено с успехом.

https://github.com/jjuanrivvera99/laravel-nginx-mysql-docker это URL-адрес, который я использую.

 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
 

И вот мой докер/nginx/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;
}
 

Комментарии:

1. Ты пробовал php artisan cache:clear или php artisan optimize:clear ?

2. да, я это сделал, но не сработало. Отправлен HTTP-запрос, ожидает ответа… 404 Не найден 2021-05-19 07:02:26 ОШИБКА 404: Не найден.

3. возможно, создать новый маршрут, который использует function вместо контроллера для возврата простой строки, что-то вроде «/test» в web.php в папке «Маршруты». если он проходит, это означает, что в маршруте главной страницы чего-то не хватает. 404 в laravel может означать, что a Model отсутствует или a route отсутствует. так что проверьте это, чтобы убедиться, что он пропустил маршрут. и, кстати, всегда полезно включить в вопрос то, что вы пробовали.