Я пытаюсь настроить Dockerized Python сервер с именем Bullet Train на моем локальном компьютере:
Он состоит из 3 компонентов:
Все эти 3 должны работать вместе, чтобы запустить сервер и запустить его, так что это docker -компонентный файл, который находится на верхнем уровне как внешнего интерфейса, так и api-сервера:
version: '3'
services:
db:
image: postgres
environment:
POSTGRES_PASSWORD: password
POSTGRES_DB: bullettrain
ports:
- "5432:5432"
api:
build:
context: ./bullet-train-api
dockerfile: docker/Dockerfile
command: bash -c "pipenv run python manage.py migrate --noinput
&& pipenv run python manage.py collectstatic --noinput
&& pipenv run gunicorn --bind 0.0.0.0:8000 -w 3 app.wsgi
&& pipenv run python src/manage.py createsuperuser"
environment:
DJANGO_DB_NAME: bullettrain
DJANGO_DB_USER: postgres
DJANGO_DB_PASSWORD: password
DJANGO_DB_PORT: 5432
DJANGO_ALLOWED_HOSTS: localhost
ports:
- "8000:8000"
depends_on:
- db
links:
- db:db
frontend:
build:
context: ./bullet-train-frontend
dockerfile: Dockerfile
ports:
- "8080:8080"
Таким образом, все 3 компонента работают параллельно. Все идет нормально! Теперь, чтобы инициализировать его, я запускаю createsuperuser
, как указано здесь , выполнив следующие действия:
docker exec -it research_api_1 bash ## go to the context of the API server terminal
run python manage.py createsuperuser ## run the createsuperuser command
Команда выполнена успешно, и я получаю следующие выходные данные:
Чтобы подтвердить, я пошел в базу данных:
docker exec -it research_db_1 bash ## go to the database instance
psql bullettrain postgres ## connect to the bullettrain database
select * from public.users_ffadminuser; ## check if the super user is created
Результаты показывают, что пользователь действительно создан:
Теперь, если я go на панели администратора в соответствии с документами, ничего не происходит, и журналы сервера всегда выдают Session data corrupted
:
![Session data corrupted](https://i.stack.imgur.com/vawxC.png)