@EvgMul

Почему получаю ERR_EMPTY_RESPONSE?

Здраствуйте.
Изучаю Docker и пытаюсь развернуть проект на нём.
У меня получилась следующая конфигурация:
Dockerfile:
# Базовый образ с nginx и php
FROM richarvey/nginx-php-fpm

# Добавляем наше веб приложение
ADD app /var/www/app

# Удаляем конфиги сайтов которые там есть
RUN rm -Rf /etc/nginx/sites-enabled/*

docker-compose.yml
# Последняя версия docker-compose
version: '3'

# Создаем общую сеть deafult для всех контейнеров
networks:
  default:
    driver: bridge

# Создаем отдельные контейнеры
services:
  # Контейнер с веб-приложением
  app:
    # Собираем из Dockerfile 
    build: 
      # Корнем указываем корень основного проекта
      context: ../
      dockerfile: ./docker/Dockerfile
    # Показываем наружу 80 порт
    ports: 
      - "8000:8000"
    expose:
      - "8000"
    # Подключаем к общей сети с другими контейнерами
    networks: 
      - default
    # Запускаем только после db
    depends_on: 
      - db    
    # Линкуем внешнюю папку с исходниками внутрь
    volumes:
      - "../app:/var/www/app"
      # Так же линкуем конфиг для nginx
      - "./conf/nginx:/etc/nginx/sites-available"      
  # Контейнер с базой данных
  db:
    image: mysql:latest
    # Подключаем к общей сети с другими контейнерами
    networks: 
      - default
    # Показываем наружу порт
    ports:
      - "3336:3306"
    # Задаем параметры для инициализации БД
    environment:
      # Пароль к БД
      MYSQL_ROOT_PASSWORD: root
      # Создаваемая по умолчанию бд
      MYSQL_DATABASE: yii-template-db
    # Линкуем внешнюю папку для хранения БД
    volumes:
      - "./database:/var/lib/mysql"

nginx.conf
server {
    charset utf-8;
    client_max_body_size 128M;

    listen 8000; ## listen for ipv4

    root        /var/www/app/web/;
    index       index.php;

    access_log  /var/www/app/log/frontend-access.log;
    error_log   /var/www/app/log/frontend-error.log;

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

    # uncomment to avoid processing of calls to non-existing static files by Yii
    #location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
    #    try_files $uri =404;
    #}
    #error_page 404 /404.html;

    # deny accessing php files for the /assets directory
    location ~ ^/assets/.*\.php$ {
        deny all;
    }

    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass unix:/var/run/php-fpm.sock;
        try_files $uri =404;
    }

    location ~* /\. {
        deny all;
    }
}


В результате при обращении к localhost:8000 получаю ошибку ERR_EMPTY_RESPONSE
5fb386d01674c534142264.png

Подскажите, пожалуйста, в чем моя ошибка?
Заранее благодарен всем отозвавшимся.
  • Вопрос задан
  • 6145 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Tyazhik
Судя по всему в самом приложении не правильно указан ip хоста. Как я понял, если писать localhost(127.0.0.1), то приложение слушает порт именно внутри контейнера, а не снаружи. Чтобы исправить проблему, в конфиге приложения(или другом месте, если у вас хардкод) нужно исправить localhost на 0.0.0.0.
https://forums.docker.com/t/can-access-container-f...
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы