Как настроить команду runserver в yml файле с помощью docker compose?
У меня есть dockercompose файл:
version: '3'
services:
app:
build: .
environment:
- DB_ENGINE=django.db.backends.sqlite3
- DB_NAME=/code/db.sqlite3
ports:
- "8000:8000"
command: >
sh -c "python src/manage.py runserver 0.0.0.0:8000"
volumes:
- .:/code
env_file:
- .env
Я хочу сделать так, чтобы runserver при docker compose up выводил в консоль рабочую ссылку, нажав на которую открывался бы сайт на джанго. По умолчанию runserver сам выводит кликабельную ссылку, но у меня она как-то странно работает.
Если оставить команду python src/manage.py runserver, то по умолчанию будет URL 127.0.0.1:8000 (это мне и надо). Но почему-то эта ссылка не будет работать. Если ее открыть то будет ошибка в браузере ERR_ADDRESS_INVALID. И с любой другой ссылкой будет также.
Но если в yml файл добавить 0.0.0.0:8000 в команду (python src/manage.py runserver 0.0.0.0:8000), то ссылка тоже не будет работать. Но в этом случае уже если открыть localhost:8000, то сайт начнет работать.
Как можно это всё синхронизировать? Чтобы если я запускал через докер сервер с одной ссылкой, то в консоль выводилась бы она же и она же бы и работала.
Вот мой Dockerfile
FROM python:3.10-slim-buster
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
WORKDIR /code
COPY Pipfile Pipfile.lock /code/
RUN pip install pipenv && pipenv install --system
COPY . /code/
EXPOSE 8000
CMD python src/manage.py runserver & python src/manage.py start_bot