通常,我会在本地计算机上启动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方面有一些经验?
答案 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实例才能注入新的环境变量。