使用 bash 变量在 docker-compose 中未设置变量

问题描述 投票:0回答:1

在我的 docker-compose 中,我有一个像这样的

command

version: "3.9"
...
command: "/bin/sh -c 'max=20; min=10; trap exit TERM; while :; do echo test; sleep $(($RANDOM%($max-$min+1)+$min)); done"
...

它以 10 到 20 秒的间隔打印

test
。在我的终端中,这工作得很好。在 docker-compose 中它有问题:

WARN[0000] The "RANDOM" variable is not set. Defaulting to a blank string. 
WARN[0000] The "max" variable is not set. Defaulting to a blank string. 
WARN[0000] The "min" variable is not set. Defaulting to a blank string. 
WARN[0000] The "min" variable is not set. Defaulting to a blank string. 
WARN[0000] /..../dist/docker-compose.yml: `version` is obsolete 
1 error(s) decoding:

* error decoding 'services[tool].command': invalid command line string

这些 bash 变量似乎有问题。有办法解决这个问题吗?

bash docker-compose
1个回答
0
投票

有办法解决这个问题吗?

来自 https://docs.docker.com/compose/compose-file/12-interpolation/ :

当您的配置需要文字美元符号时,您可以使用 $$(双美元符号)。这也可以防止 Compose 插入值,因此 $$ 允许您引用您不希望由 Compose 处理的环境变量。

© www.soinside.com 2019 - 2024. All rights reserved.