Docker-compose может скомпилировать программу, но не может открыть ссылку на локальный хост
У меня есть базовый проект Django, который я поместил в контейнер docker.
В настоящее время я запускаю его на https локально только для стадии разработки, потому что это является требованием.
Когда я запускаю свою программу без docker, она успешно открывается на https://127.0.0.1:8000. Это адрес, на котором, согласно сообщению, в данный момент работает программа.
Но когда я использую ту же логику на моем контейнере docker после запуска docker-compose, контейнер компилируется, но я не могу загрузить веб-страницу. Когда я пытаюсь запустить адрес из контейнера docker, я просто получаю общую ошибку "Сайт недоступен".
Ссылка, которую я использовал для получения https во время разработки:
Docker-compose.yml
version: "3.8"
services:
django:
build: .
container_name: frontend
command: python manage.py runserver_plus --cert-file cert.pem --key-file key.pem
volumes:
- .:/usr/src/app
ports:
- "8000:8000"
depends_on:
- pgdb
pgdb:
image: postgres
container_name: backend
environment:
- POSTGRES_DB=postgres
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
Dockerfile
FROM python:3.12.3
ENV PYTHONUNBUFFERED=1
WORKDIR /usr/src/app
COPY requirements.txt ./
RUN pip install django
RUN pip install -r requirements.txt
settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'location',
'rest_framework',
'django_extensions',
]
Я попытался изменить номер порта, но это все равно не помогло.
Я разобрался с проблемой, как было указано. Мне просто нужно было указать адрес для docker.
команда: python manage.py runserver_plus 0.0.0.0:8000 --cert-file cert.pem --key-file key.pem
добавление 0.0.0.0.8000 решило мою проблему