【问题标题】:Deploy Azure Webapp with custom container environment variables使用自定义容器环境变量部署 Azure Webapp
【发布时间】:2018-06-04 13:30:10
【问题描述】:

一般来说,我会在本地机器上启动 docker 实例,例如 docker run -t -i -e 'a=b' ...

现在,我想部署和运行我之前上传到 Docker 容器注册表的自定义 docker 映像,并像上面的命令一样使用环境变量启动它。

检查Azure CLI for WebApps 您可以看到设置环境变量通常应该是可能的。但对我来说,这个“环境变量”似乎不是传递给 docker 命令的环境变量。为什么?检查容器协议,我可以看到 docker 容器是如何启动的。没有设置环境变量。

使用Azure Container,它会像az container create ... --environment-variables a=b 这样工作。这些环境变量被传递给容器/docker。这正是我正在寻找的 WebApps。

有没有人在部署 Azure Webapps 和使用环境变量开始的客户 Docker 实例方面有一些经验?

【问题讨论】:

    标签: azure docker azure-web-app-service acs


    【解决方案1】:

    我想我找到了问题的解决方案:

    App Settings are injected into your app as environment variables at runtime.

    如果您需要为应用程序设置环境变量,只需在 Azure 门户中添加应用程序设置。当您的应用运行时,我们会自动将应用设置作为环境变量注入到进程中。

    如何通过 CLI 工作:

    az webapp config appsettings set --name <mycontainername> --resource-group <myresourcegroupname> --settings a='b' 
    

    像上面的命令一样通过 CLI 设置所有环境变量对我有用。通过应用程序设置中的门户 UI 也可以做到这一点。如果您检查 Azure 如何启动 Docker 实例,您将看到在启动期间未设置任何设置的环境变量(例如。docker run -d -p 3287:3000 --name &lt;mycontainername -e a=b)但是如果您登录到 Docker 容器并为环境变量运行 echo 命令,你会看到环境变量已经被注入了。

    注意:也许您必须重新启动 Docker 实例才能注入新的环境变量。

    【讨论】:

    • 这让我完全把头发拉了出来。当我 ssh 进入正在运行的容器和 printenv 时,appsettings 不可见。但它们似乎对容器入口点可用。我最终在我的入口点添加了一个echo $TEST &gt; test.txt。尽管它们不能立即使用。需要几次容器重启。
    • 这里相同...我没有看到容器中的变量
    • 这不适用于我通过 Web UI。
    猜你喜欢
    • 2020-03-06
    • 2020-07-22
    • 1970-01-01
    • 2017-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-29
    相关资源
    最近更新 更多