@EVOSandru6

Как заставить nginx смотреть в нужную папку Laravel проекта, обернутого в Docker?

Всем привет.

Есть Laravel проект с таким docker-compose:

version: '3.7'
services:
  php-fpm:
    container_name: crm_php-fpm
    build:
      context: .
      dockerfile: Dockerfile.php-fpm.${ENV}
    volumes:
      - ./app:/var/www
    environment:
      - REDIS_PORT=6379
      - REDIS_HOST=redis
      - DB_CONNECTION=pgsql
      - DB_PORT=5432
      - DB_HOST=pgsql
    ports:
      - 9001:9000
  php-cli:
    container_name: crm_php-cli
    build:
      context: .
      dockerfile: Dockerfile.php-cli.${ENV}
    volumes:
      - ./app:/var/www
    environment:
      - REDIS_PORT=6379
      - REDIS_HOST=redis
      - DB_CONNECTION=pgsql
      - DB_PORT=5432
      - DB_HOST=pgsql
    restart: always
    tty: true
  pgsql:
    container_name: crm_pgsql
    image: postgres:9.6-alpine
    environment:
      - POSTGRES_USER=app
      - POSTGRES_PASSWORD=app
      - POSTGRES_DATABASE=secret
    ports:
      - 54321:5432
    volumes:
      - ././storage/postgres:/var/lib/postgresql/data
  node:
    container_name: crm_node
    image: node:10.11-jessie
    volumes:
        - ${APP_PATH_HOST}:/var/www
    working_dir: /var/www
    tty: true
  redis:
    container_name: crm_redis
    image: redis:5.0
    ports:
      - 63793:6379


Раннее nginx присутствовал в контейнере и это был рабочий вариант.
Но по некоторым причинам пришлось вывести его наружу.

Вот конфиг NGINX.

server
{
    listen 82;

    index index.php index.html;
    root /home/andrey/PhpStormProjects/crm/app;

    location / {
        try_files $uri /index.php?$args;
    }

    location /docs {
        try_files $uri $uri/;
    }

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass localhost:9001;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
}


Перезапускаю Nginx без ошибок, кидаю запрос:
curl localhost:82

и ловлю:

File not found.

Структура проекта crm такая:
- Docker files и всякие паки для докера
- .env
- app (тут стандартный проект Laravel, внутри которого другая папка app как обычно)

В чем причина может быть?
  • Вопрос задан
  • 112 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Fortop
Tech/Team lead
Понятия не имею зачем вы вынесли nginx отдельно, но самое простое решение вашей проблемы это смонтировать только код в контейнер nginx.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы