微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

通过 docker-compose 文件创建的 django 超级用户不起作用

如何解决通过 docker-compose 文件创建的 django 超级用户不起作用

我有一个简单的 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

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

出现错误: 请为员工帐户输入正确的用户名和密码。

解决方法

根据documentation

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。