Настройка сервера Dockerized python на локальном компьютере приводит к повреждению данных сеанса - PullRequest
0 голосов
/ 11 марта 2020

Я пытаюсь настроить 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

Команда выполнена успешно, и я получаю следующие выходные данные:

Superuser created successfully.

Чтобы подтвердить, я пошел в базу данных:

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

Результаты показывают, что пользователь действительно создан:

super user created

Теперь, если я go на панели администратора в соответствии с документами, ничего не происходит, и журналы сервера всегда выдают Session data corrupted:

Session data corrupted

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