如何从命令行向docker-compose的volumes部分传入变量?
解决docker-compose volumes配置的命令行传参问题
你的问题核心是**--build-arg只作用于镜像构建阶段**,而volumes的配置是docker-compose解析配置文件时就需要读取的变量,所以用build-arg传参完全不生效。要实现从命令行传递STORAGE_ACCOUNT_KEY到volumes配置,直接通过临时环境变量传递即可:
不同系统的命令写法
Linux/macOS(bash/zsh)
STORAGE_ACCOUNT_KEY="##########" docker-compose -f docker-compose.yml build
Windows 命令提示符(CMD)
set STORAGE_ACCOUNT_KEY=########## && docker-compose -f docker-compose.yml build
Windows PowerShell
$env:STORAGE_ACCOUNT_KEY="##########"; docker-compose -f docker-compose.yml build
原理说明
docker-compose在解析docker-compose.yml时,会自动读取当前shell环境中的环境变量,所以在执行docker-compose命令前临时设置环境变量,就能让配置里的${STORAGE_ACCOUNT_KEY}被正确替换。这种方式不会把密钥写入任何文件,完全通过命令行临时传递,符合你的安全需求。
内容的提问来源于stack exchange,提问作者user1044169
相关产品推荐
相关产品推荐

