docker 中的变量替换-在 Azure Docker Web 应用程序中编写

Variable substitutions in docker-compose in Azure Docker Web app

我有一个 docker-compose 文件,其中包含我的数据库的秘密。

port: 4466
managementApiSecret: ${DB_SECRET}

所以我想使用 Docker-Compose 的变量替换 (https://docs.docker.com/compose/compose-file/#variable-substitution) 来通过环境变量而不是我的 yaml 文件提供我的秘密。

在我的 Azure Linux Docker 实例上使用 "Application Settings" 变量完全有可能吗?

它似乎对我不起作用,我已经尝试了 ${VAR} 和 $VAR 语法,但都没有用。我还尝试了仅包含字母数字和数字的秘密。

提前致谢。 弗兰克

启动容器所需的环境变量(例如:您希望在容器名称中包含内部版本号)可以添加到与 docker-[=28= 相同目录中的 .env 文件中] 文件。

示例 .env 文件:

DB_SECRET=foo

运行: docker-compose config 并验证变量是否已替换为您在 .env 文件中的值

此外,我建议在您的 docker-compose.yml 文件中使用 managementApiSecret:"${DB_SECRET}"(注意变量周围的引号)

可能有 azure 特定的方式来分享秘密,但我还没有尝试过。

如果你想传入容器需要的环境变量,那么https://docs.docker.com/compose/compose-file/#env_file就是你想要的。这些环境变量将成为 docker 容器内环境的一部分。