docker - Docker,设置为 env var 文件内容
问题描述
如何ENV
从文件中设置内容?像这样的东西:
COPY file_with_content.txt ./
ENV MODEL=file_with_content.txt
解决方案
您不能直接使用 DockerfileENV
将变量设置为文件的内容。
如果您直接使用该docker build
命令,则可以将文件内容作为构建时参数传递:
ARG MODEL
ENV MODEL=$MODEL # if needed at run time
docker build --build-arg MODEL=$(cat file-with-content.txt) .
这可能会或可能不会被更高级别的工具支持。例如,没有一种方法可以轻松地在 a 中指定它docker-compose.yml
。
否则,Docker 对此没有内置支持,您可以使用Dockerfile 中的一种技术 - 将 ENV 设置为命令结果以将环境变量设置为文件内容。例如,使用入口点包装器:
#!/bin/sh
export MODEL=$(cat file-with-content.txt)
exec "$@"
ENTRYPOINT ["/entrypoint.sh"] # the script above, MUST be JSON-array syntax
CMD the main command as you had it before
推荐阅读
- json - pandas 将数据帧写入 to_json 方法替代
- python - 当“源bin/activate”不起作用时为python激活虚拟环境?
- ios - 新请求场景的 NSUserActivity 没有用户信息
- c++ - 模拟输入改变 RGB 颜色
- r - R:我如何在复制中模拟时间序列数据,直到满足某些条件
- vb.net - 如何在 vb.net 中使用字符串变量设置消息框图标
- mysql - 有没有办法用 LOAD DATA LOCAL INFILE 覆盖表?
- mysql - 如何永久/强制删除 rds/aurora 上的 mysql 数据库
- typescript - 检查泛型函数参数中的类型并返回此参数的对象字面量类型
- c# - 在 .Net Core AppSettings / 配置中处理带有句点的键名