使用 docker 的 Django 部署 - 创建超级用户
Django deployment with docker - create superuser
我设置了 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 行是我想要的,我想我有语法问题。最初我希望密码和用户名是存储在环境文件中的变量:
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 上看到我的应用程序,但在这种情况下如何创建超级用户?
根据createsuperuser -h
和这个doc,createsuperuser
命令不支持--password
标志。要从环境变量中读取参数,您应该将此命令与 --noinput
标志一起使用,并在您的环境文件中将用户名、电子邮件和密码等必填字段设置为 DJANGO_SUPERUSER_<uppercase_field_name>
。
python manage.py createsuperuser --noinput
我设置了 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 行是我想要的,我想我有语法问题。最初我希望密码和用户名是存储在环境文件中的变量:
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 上看到我的应用程序,但在这种情况下如何创建超级用户?
根据createsuperuser -h
和这个doc,createsuperuser
命令不支持--password
标志。要从环境变量中读取参数,您应该将此命令与 --noinput
标志一起使用,并在您的环境文件中将用户名、电子邮件和密码等必填字段设置为 DJANGO_SUPERUSER_<uppercase_field_name>
。
python manage.py createsuperuser --noinput