【问题标题】:Django deployment with docker - create superuser使用 docker 部署 Django - 创建超级用户
【发布时间】:2022-01-15 10:17:18
【问题描述】:

我设置了 3 个环境,无法创建超级用户。我迁移和运行服务器的方式现在遵循容器,所以我有一个 entrypoint.sh:

#!/bin/sh
  1
  2 echo "${RTE} Runtime Environment - Running entrypoint."
  3
  4 if [ "$RTE" = "dev" ]; then
  5
  6     python manage.py makemigrations --merge
  7     python manage.py migrate --noinput
  8     python manage.py runserver 0:8000
  9
 10     python manage.py createsuperuser --username "admin" --email "admin@banl.com" --password "superuser"
 11     echo "created superuser"
 12
 13 elif [ "$RTE" = "test" ]; then
 14
 15     echo "This is tets."
 16     python manage.py makemigrations
 17     python manage.py migrate
 18     python manage.py runserver
 19
 20 elif [ "$RTE" = "prod" ]; then
 21
 22     python manage.py check --deploy
 23     python manage.py collectstatic --noinput
 24     gunicorn kea_bank.asgi:application -b 0.0.0.0:8080 -k uvicorn.workers.UvicornWorker
 25
 26 fi

第 10/11 行是我想做的工作,我想我有语法问题。最初我希望密码和用户名是存储在 env 文件中的变量:

1   RTE=dev
  1 POSTGRES_USER=pguser
  2 POSTGRES_PASSWORD=pgpassword
  3 POSTGRES_DB=devdb
  4 DJANGO_SUPERUSER_PASSWORD=superuser
  5 DJANGO_SUPERUSER_EMAIL=admin@bank.com
  6 DJANGO_SUPERUSER_USERNAME=admin

但现在我只想让它工作,我需要创建一个超级用户帐户才能开发。 任何人都可以发现有什么问题吗? 我可以在 localhost:8000 上看到我的应用程序,但是在这种情况下如何创建超级用户?

【问题讨论】:

    标签: django docker docker-compose dockerfile django-admin


    【解决方案1】:

    根据createsuperuser -h和这个doccreatesuperuser命令不支持--password标志。要从环境变量中读取参数,您应该将此命令与--noinput 标志一起使用,并在您的env 文件中将用户名、电子邮件和密码等必填字段设置为DJANGO_SUPERUSER_<uppercase_field_name>

    python manage.py createsuperuser --noinput

    【讨论】:

    • 感谢您的建议!它使用 entrypoint.sh 行修复:python manage.py createsuperuser --noinput --username $DJANGO_SUPERUSER_USERNAME --email $DJANGO_SUPERUSER_EMAIL
    猜你喜欢
    • 2021-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-13
    • 2021-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多