Докер не выставляет порт

У меня есть этот файл docker-compose:

    version: '2'
services:
    web:
        build: .
        container_name: Fila
        ports:
            - 8000:8000
            - 9000:9000

И этот докер-файл:

 FROM phpdockerio/php73-fpm:latest

WORKDIR /var/www


COPY . /var/www/atendimento

WORKDIR /var/www/atendimento

RUN composer install

RUN mv .env.example .env

#RUN node index.js &

RUN php artisan key:generate 

CMD [ "php", "artisan", "serve"  ] 

После запуска "docker-compose up" и выполнения без ошибок,

когда я пытался получить доступ к localhost: 8000 в моем хосте на навигаторе, я получаю "соединение было сброшено"

внутри докера я тестирую с помощью "wget ​​localhost: 8000" и получаю правильный сайт. но в принимающей нет.

Кто-то может помочь мне?

2 ответа

Решение

Вам необходимо привязать хост к 0.0.0.0 по команде aritsan с помощью флага --host.

CMD [ "php", "artisan", "serve", "--host", "0.0.0.0"]

Почему это не сработало?

Без настройки хоста artisan свяжет сервер с контейнером localhost. Контейнер localhost и ваша машина localhost отличаются.

Установка 0.0.0.0 свяжет сервер со всеми интерфейсами, включая интерфейс хост-машины, сделав его доступным на localhost:8000.

Я думаю, что ваш Dockerfile должен добавить EXPOSE
Давайте добавим строку ниже в Dockerfile:
EXPOSE 8000 9000

Другие вопросы по тегам