有没有办法为多容器 Linux Web 应用程序从 azure key-vault 秘密设置 ENV 变量? 我可以使用
app_config
参考(基于 文档)从密钥保管库秘密中设置
@Microsoft.KeyVault
中的 ENV 变量。这对于单容器应用程序很有用,但我有一个多容器应用程序,我想为多容器应用程序内的特定服务设置一些环境变量。
我确实尝试使用
@Microsoft.KeyVault
文件中的 docker-compose.yml
引用,但这不起作用 - 它只是返回我正在设置的字符串。
我的问题是我们是否可以做这样的事情来返回密钥库秘密的实际值:
version: "3.9"
services:
my_service:
image: <IMAGE_TAG_HERE>
environment:
- [email protected](VaultName=my-secret-vault;SecretName=my-secret-key)
my_second_service:
image: <IMAGE_TAG_HERE>
environment:
- [email protected](VaultName=my-secret-vault;SecretName=my-second-service-secret-key)
您的应用程序设置为您的应用程序提供环境变量,因此,在您的情况下,为您的 docker-compose 提供环境变量。您无法直接在 docker-compose 中引用 KeyVault,因为 compose 不知道如何解释它。您必须在应用程序设置中执行此操作(就像对容器所做的那样),然后告诉您的 docker-compose 查看环境变量。
因此,在使用 KeyVault 参考设置应用程序后,请像这样更新您的 docker-compose:
version: "3.9"
services:
my_service:
image: <IMAGE_TAG_HERE>
environment:
- TEST_KEY=${<APP_SETTING_NAME_FOR_TEST_KEY>}
my_second_service:
image: <IMAGE_TAG_HERE>
environment:
- SECOND_SERVICE_TEST_KEY=${<APP_SETTING_NAME_FOR_SECOND_SERVICE_TEST_KEY>}
此
${}
表示法也可以在本地与“.env”文件一起使用。