代码之家  ›  专栏  ›  技术社区  ›  mightycode Newton

Docker容器Django调试模式true,静态生产模式

  •  1
  • mightycode Newton  · 技术社区  · 2 年前

    我已将django应用程序固定化。我有一个.env文件,debug=1。但当我运行docker容器时,它显然处于生产模式:debug=false。

    这是我的docker撰写文件:

    version: "3.9"
    
    services:
      app:
        build:
          context: .
          args:
            - DEV=true
        ports:
          - "8000:8000"
        env_file:
          - ./.env
        volumes:
          - ./zijn:/app
        command: >
          sh -c " python manage.py wait_for_db &&
                  python ./manage.py migrate &&      
                  python ./manage.py runserver 0:8000"
        environment:
          - DB_HOST=db
          - DB_NAME=zijn
          - DB_USER=zijn
          - DB_PASS=235711
          - DEBUG=1
        depends_on:
          - db
    
      db:
        image: postgres:13-alpine
    
        volumes:
          - dev-db-data:/var/lib/postgresql/data/
        environment:
          - POSTGRES_DB=dzijn
          - POSTGRES_USER=zijn
          - POSTGRES_PASSWORD=235711
    
    volumes:
      dev-db-data:
      dev-static-data:
    
    

    和.env文件:

    DEBUG=1
    SECRET_KEY="django-insecure-kwuz7%@967xvpdnf7go%r#d%lgl^c9ah%!_08l@%x=s4e4&+(u"
    DJANGO_ALLOWED_HOSTS=localhost 127.0.0.1 [::1]
    DB_NAME="zijn"
    DB_USER="zijn"
    DB_PASS="235711"
    DB_HOST=db
    DB-PORT=54326
    

    还有我的settings.py是debug-mode=True:

    SECRET_KEY = os.environ.get('SECRET_KEY')
    # SECURITY WARNING: don't run with debug turned on in production!
    DEBUG = os.environ.get('DEBUG') == "True"
    
    
    
    ALLOWED_HOSTS = []
    ALLOWED_HOSTS_ENV = os.environ.get('ALLOWED_HOSTS')
    if ALLOWED_HOSTS_ENV:
        ALLOWED_HOSTS.extend(ALLOWED_HOSTS_ENV.split(','))
    
    

    因为它返回消息:

     dotenv.read_dotenv()
    dwl_backend-app-1  | CommandError: You must set settings.ALLOWED_HOSTS if DEBUG is False.
    

    而且模板也不会加载。

    问题:如何在debug=True的情况下启动docker容器?

    1 回复  |  直到 2 年前
        1
  •  1
  •   Andrej Kesely    2 年前

    IIUC,你设置 DEBUG=1 但是你检查 os.environ.get('DEBUG') == "True" 它总是 False

    尝试将其更改为 os.environ.get('DEBUG') == "1"