考虑到以下配置:
mysql:
environment:
MY_MYSQL_PORT:
image: mysql
ports:
- "${MY_MYSQL_PORT}:3306"有一种方法可以在不依赖包装脚本的情况下为MY_MYSQL_PORT提供回退值?我已经测试了bash ${MY_MYSQL_PORT-3306},但是它不起作用。
发布于 2016-12-14 10:14:25
他们用Compose1.9版本实现了这个特性:
在变量内插中增加了对shell样式内联默认值的支持。 所支持的表单是${ FOO -默认}(如果FOO未设置则返回)和${FOO:-default} (如果FOO未设置或空,则返回)。
发布于 2021-10-20 21:56:12
Dockerfile文档中的解释可以在以下站点找到:https://docs.docker.com/engine/reference/builder/#environment-replacement
引证如下:
${variable_name}语法还支持以下几个标准bash修饰符:
${variable:-word}表示,如果设置了variable,则结果将是该值。如果没有设置variable,那么word就是结果。${variable:+word}表示,如果设置了variable,那么word将是结果,否则结果是空字符串。在任何情况下,word都可以是任何字符串,包括附加的环境变量。
可以通过在变量之前添加一个\来转义:例如,\$foo或\${foo}将分别转换为$foo和${foo}文字。
https://stackoverflow.com/questions/33784730
复制相似问题