我有一个简单的bash脚本,它创建一个容器并在其中运行一个任务:
api=${1}
az container create \
--resource-group "my_resource_group" \
--file container.yaml \
--environment-variables "APIKEY"="${api}"但是,变量APIKEY永远不会从这个调用中获得值,而总是从container.yaml中的“默认”值获得。
如何在.yaml中创建具有完整定义的容器实例并在命令az container create中传递环境变量
发布于 2020-07-14 06:52:32
当输入以文件形式给出时,不考虑环境变量。
查看cli源代码,当使用file时,它会简单地返回根据File创建容器。https://github.com/Azure/azure-cli/blob/713061e3e4a0fc969b0797ec06bd0e3db49ad4a8/src/azure-cli/azure/cli/command_modules/container/custom.py#L112
您可以做的是,在bash脚本中使用sed更改container.yaml文件中的APIKey值,然后按原样部署它。
sed -i 's/PLACEHOLDER_FOR_APIKEY_HERE/$api/g' container.yamlPLACEHOLDER_FOR_APIKEY_HERE将被替换为命令行参数,container.yaml文件将被更新。
因此,该脚本将类似于下面的脚本。
api=${1}
sed -i 's/PLACEHOLDER_FOR_APIKEY_HERE/$api/g' container.yaml
az container create \
--resource-group "my_resource_group" \
--file container.yamlhttps://stackoverflow.com/questions/62884753
复制相似问题