是否可以通过docker compose中的文件设置变量?
以下内容在撰写时不起作用(但是,如果您将其附加到容器上,则不会起作用):
version: '2'
services:
foo:
image: busybox
command:
- /bin/sh
- -c
- |
echo "hello" > id #this file will be supplied by a volume-from
ls
cat id
TEST=$(cat id) #This line does not work
echo TEST
产生的错误是:
ERROR: Invalid interpolation format for "command" option in service "foo":
答案 0 :(得分:1)
您必须更改一下配置文件。
version: '2'
services:
foo:
image: busybox
command:
- /bin/sh
- -c
- |
echo "hello" > id
ls
cat id
TEST=$$(cat id)
echo TEST
我检查了Docker版本Docker version 18.06.0-ce
和Docker撰写版本docker-compose version 1.20.0-rc2,
当您的配置需要一个$时,可以使用$$(美元符号) 字面的美元符号。这也可以防止Compose插值 值,因此$$允许您引用您所使用的环境变量 不想由Compose处理。