首页 > 解决方案 > Docker 破坏了环境变量的全部目的?

问题描述

所以我很陌生Docker,我只是对它的处理方式感到困惑environment variables

我知道,如果您在应用程序中使用环境变量,您可以在Dockerfileusing中定义它们,ENV key=value但这不是完全违背了 env vars 的目的吗?

推理:当我们将源代码推送到 github 时,它Dockerfile及其所有内容都是纯文本的,我们的 env vars 也是如此。还说你不推Dockerfile送到 github,但它仍然用于制作image可以检查的内容,Docker Desktop其中再次以纯文本形式显示环境变量。

那么我们如何正确处理Docker中的环境变量呢?

我在项目结构中使用 .env 文件。无论如何,我们是否可以配置Docker为只使用 .env 文件,而不必为ENV key=value我们拥有的每个变量显式键入?

谢谢你!

标签: dockerexpressdockerfileenvironment-variables

解决方案


您可以在运行容器时传递环境变量,方法是在其中定义它们或从文件中加载它们。

例如,如果您打算使用文件,

docker run --env-file ./env.list ubuntu bash

此文件应使用语法 <variable>=value(将变量设置为给定值)或(从本地环境中获取值),并使用 # 表示注释。

有关使用环境变量的不同做法的更多信息,请参阅设置环境变量(-e、--env、--env-file)


推荐阅读