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 容器内环境的一部分。
我有一个 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 容器内环境的一部分。