Как мне получить доступ к Django, запущенному на виртуальной машине Google Compute Engine, из моего браузера? - PullRequest
1 голос
/ 05 мая 2020

У меня есть приложение Django приборной панели, которое я использую sh, для просмотра в моем браузере. Django работает в контейнере Docker на одном из экземпляров Google Compute Engine. Экземпляр GCE находится на Google VP C, на котором я добавил правила брандмауэра, чтобы открыть порт 8000 Django. Я добавил свой IP-адрес к ALLOWED_HOSTS Django в settings.py. Журналы контейнера показывают, что он работает нормально, но когда я получаю доступ к IP-адресу экземпляра GCE из своего браузера, я сразу не могу подключиться. Я могу просто пропинговать экземпляр из командной строки. Что-то мне здесь не хватает? Застрял на этом уже несколько часов.

Примечание: у меня есть контейнер Django, работающий в «Docker сети», чтобы Celery мог взаимодействовать с контейнером RabbitMQ. Это мне где-то рекомендовали, но я не знаком с сетями Docker и не знаю, вызывают ли они проблему.

Ответы [ 2 ]

1 голос
/ 05 мая 2020

Я нашел решение после еще нескольких проб и ошибок. Это было не очень интуитивно, поэтому я опубликую здесь на случай, если смогу помочь кому-то еще.

Что решило проблему для меня, так это отображение порта (8000) в командной строке при запуске контейнера приложения: docker run -p 8000:8000 ...

Причина, по которой это так долго ускользало от меня, заключалась в том, что я уже выставляю порт в Dockerfile: EXPOSE 8000, и когда я запускаю docker ps, чтобы перечислить порты, представленные в каждом контейнере, контейнер, казалось, уже выставлен на порт: 8000/tcp. Однако я не знал, что он должен выглядеть так: 0.0.0.0:8000->8000/tcp.

В любом случае, надеюсь, это поможет кому-то другому.

1 голос
/ 05 мая 2020

попробуйте запустить приложение django с помощью команды

python manage.py runserver 0.0.0.0:8000

из django docs:

Обратите внимание, что IP-адрес по умолчанию - 127.0 .0.1, недоступен с других машин в вашей сети. Чтобы сделать ваш сервер разработки доступным для просмотра на других машинах в сети, используйте его собственный IP-адрес (например, 192.168.2.1) или 0.0.0.0 или :: (с включенным IPv6).]
1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...