是否有必要让DockerBuild文件使用环境变量文件?

是否有必要让DockerBuild文件使用环境变量文件?,docker,dockerfile,Docker,Dockerfile,我有一个Docker容器,它将有大量(大约100个)自定义设置。我更希望有更多的灵活性,而不是将默认值全部编码到DockerFile中。我注意到,docker run命令支持此选项: --env-file value Read in a file of environment variables (default []) 有没有办法让docker build使用类似的文件驱动机制?或者有更好的方法吗? 这一点已被广泛讨论,很可能不会被添加。 在build命令中引入en

我有一个Docker容器,它将有大量(大约100个)自定义设置。我更希望有更多的灵活性,而不是将默认值全部编码到DockerFile中。我注意到,
docker run
命令支持此选项:

--env-file value              Read in a file of environment variables (default [])
有没有办法让docker build使用类似的文件驱动机制?或者有更好的方法吗?

这一点已被广泛讨论,很可能不会被添加。 在build命令中引入env将创建依赖于主机的生成

但不支持您需要的文件

正如建议的那样,您可以在构建步骤中复制env文件,然后在运行期间对其进行源代码创建

COPY .env /.env
RUN set -uex; \
    . /.env; \
    echo $MY_ENV_VAR

这一点已被广泛讨论,很可能不会被添加。 在build命令中引入env将创建依赖于主机的生成

但不支持您需要的文件

正如建议的那样,您可以在构建步骤中复制env文件,然后在运行期间对其进行源代码创建

COPY .env /.env
RUN set -uex; \
    . /.env; \
    echo $MY_ENV_VAR

您可以编写一个
bash
脚本来动态构建自定义
Dockerfiles

您可以编写一个
bash
脚本来动态构建自定义
Dockerfiles

别忘了您可以随时添加一个shell脚本,运行它并执行您通常可以在shell脚本中执行的任何操作;)层越少越好。别忘了,您可以添加一个shell脚本,运行它,然后执行通常可以在shell脚本中执行的任何操作;)层数越少越好。Matt,我遵循了上面的user2105103链接,但没有找到与您建议的类似的内容。我通读了所有这些答案。我接受了你的回答,因为它应该允许我做我需要的事情。然而,如果你可以添加一个更好的链接到具体的参考,那将是伟大的!除了我的示例之外,我没有user2105103建议的参考资料。链接只是指向他们的个人资料,而不是特定的解决方案。Matt,我遵循了上面的user2105103链接,但没有找到任何类似于您建议的内容。我通读了所有这些答案。我接受了你的回答,因为它应该允许我做我需要的事情。然而,如果你可以添加一个更好的链接到具体的参考,那将是伟大的!除了我的示例之外,我没有user2105103建议的参考资料。链接只是他们的个人资料,而不是具体的解决方案。