docker - 如何在 Dockerfile 中传递多个环境变量?
问题描述
我有一个 docker-compose 文件,它允许我将环境变量作为文件(.env 文件)传递。由于我有多个 ENV 变量,Dockerfile 中是否有任何选项,例如 docker-compose 中的 env_file,用于在 docker 构建期间传递多个环境变量?
这是 docker-compose.yml
services:
web:
image: "node"
links:
- "db"
env_file: "env.app"
解决方案
AFAIK,没有这种方法可以在使用 Dockerfile 的构建步骤中使用文件注入环境变量。然而,在大多数情况下,人们最终会在 docker run 或 docker-compose up 期间使用入口点脚本并注入变量。
如果有必要,您可能需要编写一个 shell 包装器,该包装器将通过将键值对文本文件作为输入来动态更改 Dockerfile 中的值,或者使其如下所示,但 ENV 文件名需要包含在Docker 文件。
COPY my-env-vars /
RUN export $(cat my-env-vars | xargs)
这是一个未解决的问题 - https://github.com/moby/moby/issues/28617
PS - 使用这种方法时您需要格外小心,因为秘密已被烘焙到图像本身中。
推荐阅读
- c# - 如何使用 IIS 对 MVC 路由进行密码保护
- vb.net - 值 7.3 对选项“langversion”无效
- html - 如何使用 CSS 传递静态 HTML 文件
- apache-kafka - Kafka实现消息过滤的最佳方式
- python-3.x - 在 MacOs 10.11.6 上安装 opencv_python
- typescript - 在规则测试数据集中创建 Firestore Timestamp 对象的正确方法是什么?
- python - Python 错误:尝试相对导入超出顶级包
- c - 打印在文件中多次写入的单词 1 次
- ubuntu - 制作:*** [cmake_check_build_system] 错误 127
- python - 在下面的代码中出现python错误“无法从重复索引重新索引”和警告“设置复制警告”