我在 .env 中有一个 django 密钥,它被读取为空白字符串,密钥的一部分附在下面
SECRET_KEY=|$u6qthu06zp|$q
在 $ 符号开始的地方我不断收到消息
level=warning msg="未设置“u6qthu06zp”变量。默认为空字符串。" level=warning msg="未设置“q”变量。默认为空字符串。"
设置文件有
import os
import environ
PROJECT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
BASE_DIR = os.path.dirname(PROJECT_DIR)
env = environ.Env(DEBUG=(bool,False))
environ.Env.read_env(env_file=".env")
最后写入密钥
SECRET_KEY = env("SECRET_KEY")
但是我无法运行 docker-compose build --remove-orphan 因为 SECRET_KEY 似乎以空字符串形式返回,因为 $ 符号导致了某种故障。任何建议将不胜感激
make 文件有
ifneq (,$(wildcard ./ .env))
include .env
export
ENV_FILE_PARAM = --env-file .env
endif
我正在尝试跑步
docker-compose up --build -d --remove-orphans
确保将环境变量的值放在引号中。因此 docker 会将整个值视为一个字符串。
当我想使用 docker compose 构建和运行我的 django 应用程序时,我在 django 应用程序中遇到了同样的错误。 问题是我在 .env 文件中添加了密钥,如下行:
SECRET_KEY=django-insecure-x6=*@#26$q#b&9m3893a7_1i2(=k)$s%5q
当我尝试构建 docker compose 时,它会尝试读取 .env 文件,并认为“$”后面的“q”和“s”字符是环境变量。因此,我将密钥放在单引号中,如下所示,它不再显示警告:
SECRET_KEY='django-insecure-x6=*@#26$q#b&9m3893a7_1i2(=k)$s%5q'