在我的docker-compose文件(docker-compose.yaml
)中,我想基于一个小shell脚本设置一个参数,如下所示:
services:
backend:
[...]
build:
[...]
args:
PKG_NAME: $(dpkg -l <my_package>)
在Dockerfile
中,我这样读这个参数:
ARG PKG_NAME
首先:我知道这种方法依赖于操作系统(需要dpkg
),但是对于初学者来说,我很乐意让它在Debian上运行,而且如果值是空字符串也没关系。
但是,docker-compose up
会抛出以下错误:
ERROR: Invalid interpolation format for "build" option in service "backend": "$(dpkg -l <my_package>)"
有没有办法通过shell脚本(或其他方法)在docker-compose文件中动态指定参数?
1条答案
按热度按时间vybvopom1#
只能按照合成文件文档中的说明使用变量替换
您正在尝试注入shell构造,但不支持此操作。
文档包含several examples on how to pass vars to compose file。在您的情况下,您可以:
1.导出环境中的var:
1.在合成文件中使用该变量,并使用默认值: