服务“web”中“环境”选项的插值格式无效:“SECRET_KEY=

8 django environment-variables docker docker-compose

我正在从事在线书店项目。我正在尝试在 dockercompose.yml 中设置环境变量

project_folder/settings.py

SECRET_KEY = os.environ.get('SECRET_KEY')

dockercompose.yml 文件中的代码

version: '3.7'

services:
  web:
      build: .
      command: python /code/manage.py runserver 0.0.0.0:8000
      volumes:
          - .:/code
      ports:
          - 8000:8000
      depends_on:
          - db
      environment:
          - SECRET_KEY=my_secret_key
          - DEBUG=1

  db:
    image: postgres:11
    volumes:
      - postgres_data:/var/lib/postgresql/data/
volumes:
  postgres_data:
Run Code Online (Sandbox Code Playgroud)

运行命令时出现以下错误

$docker-compose down

ERROR: Invalid interpolation format for "environment" option in service "web": "SECRET_KEY=my_secret_key"
Run Code Online (Sandbox Code Playgroud)

mch*_*wre 14

由于您的 secret_key 包含$符号。你需要逃避它。

采用双$符号逃避它$$作为指定在这里的官方文档。

或者,如果可能,您可以拥有一个没有$符号的新 secret_key 。