使用自定义容器环境变量部署Azure Webapp

时间:2018-06-04 13:30:11

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

通常,我会在本地计算机上启动docker实例,例如docker run -t -i -e 'a=b' ...

现在,我想部署并运行我之前上传到Docker Container Registry的自定义docker镜像,并像上面的命令一样启动它 - 使用环境变量。

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

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

是否有人在使用环境变量启动的客户Docker实例部署Azure Webapps方面有一些经验?

1 个答案:

答案 0 :(得分:10)

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

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

  

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

如何通过CLI工作:

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

通过CLI设置所有环境变量,就像上面的命令一样。在应用程序设置中通过门户UI可以实现相同的功能。如果您检查Azure如何启动Docker实例,您将看到在启动期间没有设置任何设置环境变量(例如。docker run -d -p 3287:3000 --name <mycontainername -e a=b),但是如果您登录到Docker容器并运行echo命令对于环境变量,您将看到已注入环境变量。

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