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 решило мою проблему

Вернуться на верх