【发布时间】:2022-01-21 05:49:08
【问题描述】:
所以目前我正在为我的 python 烧瓶服务器构建一个 docker 映像,我访问代码中的秘密变量的方式是
app.config["SECRET_KEY"] = os.environ.get("todo_secret_key") or "secret"
现在如果我想在没有容器的情况下运行代码,我会使用导出命令(linux)在环境中临时拥有密钥,但我需要它在容器的环境中。
现在,我知道的一些方法是
-
在 docker run 命令
docker run {imageName} -e {name}={value}中使用 -e 传递它(不安全,因为我不希望它出现在终端日志中) -
通过指定环境变量在 dockerfile 中传递它(绝对不安全,因为这个文件是公开的)
除了这些方法之外,还有没有更安全的方式来传递变量
P.s 这是我第一次制作图像,如果这是一个愚蠢的问题,请道歉
【问题讨论】:
-
有一个完整的运营分支讨论了执行此操作的最佳方法,称为“配置管理”
-
--env-file ...? -
顺便说一句:我真的很欣赏这样的问题,这些问题简洁明了,并且描述了一个提问者,他们刚刚意识到他们刚刚发现的冰山的庞大规模遥遥无期。
-
无论采用何种方法,您仍然可以打印环境变量。那你为什么要关心它。请详细说明。
-
@SrinivasReddyThatiparthy 是的,但
docker run ... -e name=secret可以从任何用户的ps aux中看到,即使该用户没有执行到容器中的权限。
标签: python docker environment-variables