Заставьте django работать с `network_mode: host` в docker-compose

Связанный проект: https://github.com/mjozan/docker-compose-django-react

Привет

Этот проект представляет собой простое приложение, использующее React и Django с docker-compose.

Поскольку я хочу, чтобы этот проект работал с vscode Codespace (см. этот issue), я поставил network_mode: host на службу django в файле docker-compose.

Однако при этом django больше не работает (кажется, что контейнер работает, но браузер не может получить доступ к localhost:8000).

Я хотел бы знать, как я могу решить эту проблему, чтобы все службы работали. Спасибо за ваш ответ.


person Martin J    schedule 28.05.2020    source источник
comment
Сеть хоста в основном отключает весь сетевой стек Docker; вам не нужно это в большинстве типичных случаев, и особенно не для веб-приложения Django. Вы можете удалить эту настройку? Можете ли вы предоставить минимально воспроизводимый пример, демонстрирующий проблему?   -  person David Maze    schedule 28.05.2020
comment
Вы нашли решение?   -  person Sachith Muhandiram    schedule 28.05.2020


Ответы (1)


Мало что может быть:

Сначала убедитесь, что у вас нет службы, работающей на порту 8000. Предположим, вы используете Linux.

netstat -tnlp

Если порт свободен, попробуйте: network_mode: "host"

Которым я часто пользуюсь.

Если даже это не решит проблему, возможно, вам придется отредактировать файл /etc/hosts.

Добавляем что-то вроде /etc/hosts

0.0.0.0 django

Теперь попробуйте django:8000

person Sachith Muhandiram    schedule 28.05.2020