【问题标题】:django superuser created through docker-compose file doesn't work通过 docker-compose 文件创建的 django 超级用户不起作用
【发布时间】:2021-05-11 14:02:36
【问题描述】:

我有一个简单的 django-mongo 应用程序。 我的 django 应用程序有一个 dockerfile。

我有一个 docker-compose.yml,其中包含 django 和 mongo 图像。 我能够使用 docker-compose 命令构建和运行 django-mongo 应用程序。

我面临的问题是我无法使用超级用户凭据登录 django 管理面板。

下面是我的dockerfile

FROM python:3.8-alpine

RUN mkdir /cursor_infotech
WORKDIR /cursor_infotech
ADD . /cursor_infotech/

RUN pip install -r requirements.txt

docker-compose.yml

version: "3"
services:
       cursor-infotech:
           container_name: cursor
           image: cursor
           restart: always
           build: .
           #environment:
            #  - MONGO_URI=$MONGO_URI
            #  - PORT=$PORT
            #  - NODE_ENV=$NODE_ENV   
           ports:
              - "7000:7000"
           networks:
              - cursor-backend
           depends_on:
              - mongo
           command: > 
                sh -c "python manage.py makemigrations && python manage.py migrate && 
                python manage.py createsuperuser --noinput --username admin --email admin@test.com && gunicorn -b 0.0.0.0:7000 cursor_infotech.wsgi"
       mongo:
             container_name: mongo
             image: mongo  
             environment:
               - MONGO_INITDB_DATABASE=cursor-pcbuild
               - MONGO_INITDB_ROOT_USERNAME=root
               - MONGO_INITDB_ROOT_PASSWORD=password
             volumes:
                - ./init-mongo.js:/docker-entrypoint-initdb.d/init-mongo-js:ro
                - ./data:/usr/share/db/data
             ports:
                - '27017:27017'
             networks:
                - cursor-backend 
networks:
  cursor-backend:
    driver: bridge

我在我的项目文件夹中运行了这个命令

docker-compose up --build

django 和 mongo 映像已构建和部署 - 工作正常。

当我尝试在我的 django 管理面板中登录管理员帐户时, 我得到以下错误。

django admin panel error

当我尝试登录 django 管理面板时,我使用 docker-compose.yml 创建的 django 超级用户不起作用。 如何解决这个问题?

更新:

我已经在与 docker-compose.yml 相同的目录中创建了一个 .env 文件。 (忘记说了)

.env 文件如下所示

DJANGO_SUPERUSER_PASSWORD=password

正如下面评论中提到的,如果您不想看图片,我会解释这个问题。 -> 当我尝试使用我的用户名和密码访问管理面板时,

我得到错误: 请输入正确的员工帐号用户名和密码。

【问题讨论】:

    标签: python django docker docker-compose superuser


    【解决方案1】:

    根据documentation

    "非交互运行时,您可以通过设置DJANGO_SUPERUSER_PASSWORD环境变量来提供密码。否则,将不会设置密码,并且超级用户帐户将无法登录,直到手动为其设置密码。”

    因此,您需要在运行 createsuperuser 命令之前设置环境变量。

    另外,请不要将错误发布为图像,这可能会给连接速度慢或运行辅助软件的用户带来问题。

    【讨论】:

    • 感谢您的回复,我有 DJANGO_SUPERUSER_PASSWORD=password 的 .env 文件。 .env 文件与 docker-compose 位于同一目录中。 (对不起,我忘了提。)如何解决这个问题?
    猜你喜欢
    • 2022-01-15
    • 2021-10-13
    • 1970-01-01
    • 1970-01-01
    • 2018-07-07
    • 2021-11-20
    • 1970-01-01
    • 2015-01-13
    • 2012-12-13
    相关资源
    最近更新 更多