在多容器 Linux Web 应用程序中使用来自 Azure key-vault 机密的 Docker 组合

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

有没有办法为多容器 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)
azure docker azure-web-app-service azure-keyvault
1个回答
0
投票

您的应用程序设置为您的应用程序提供环境变量,因此,在您的情况下,为您的 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”文件一起使用。

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