![](/img/trans.png)
[英]Azure web app service for Linux containers not picking up environment variables from docker-compose file
[英]Azure App Service - resolving environment variables in docker-compose yml
我有一個多容器應用程序,我想在 Azure 應用服務中部署和運行。 我的撰寫文件 docker-compose.prod.yml 包含環境變量(如下面的代碼所示)。
當我在本地運行構建撰寫文件時,這些變量在構建過程中通過引用位於同一目錄中的環境文件 (env.) 來解析:
docker-compose -f docker-compose.prod.yml build
push
我知道可以構建 DevOps 管道(如此處所述),它將在構建過程中插入環境變量,類似於我在本地構建它的方式。
但是,我想知道是否有可能
1.) 通過 Azure Portal web 界面配置環境變量(就像您可以在應用程序設置中做的那樣),然后 docker 撰寫文件可以在啟動時引用這些變量來解析這些變量
要么
2.) 以某種方式上傳環境。 我在本地使用的文件,然后可用於在創建或啟動時解析變量。
Contents of docker-compose.prod.yml
--------------------------------------------
version: '3.7'
services:
app1:
build: ./app1
command : python3 manage.py runserver 0.0.0.0:8000
ports:
- 8000:8000
image: "${AZ_CONTAINER_REGISTRY}/${APP1_IMAGE}:${APP1_VERSION}"
app2:
build: ./app2
command: python app.py
ports:
- 8081:8080
image: "${AZ_CONTAINER_REGISTRY}/${APP2_IMAGE}:${APP2_VERSION}"
restart: always
Contents of env. file
--------------------------------------------
AZ_CONTAINER_REGISTRY=sample.azurecr.io
APP1_IMAGE=app1test
APP1_VERSION=1.0
APP2_IMAGE=app2test
APP2_VERSION=2.0
感謝任何反饋,謝謝
1.) 通過 Azure Portal web 界面配置環境變量(就像您可以在應用程序設置中做的那樣),然后 docker 撰寫文件可以在啟動時引用這些變量來解析這些變量
據我所知,Azure Web App目前不支持使用變量代替真實圖像。 docker-compose文件中只能使用Azure給出的一些變量,比如持久化存儲的變量WEBAPP_STORAGE_HOME
。
2.) 以某種方式上傳環境。 我在本地使用的文件可用於在創建或啟動時解析變量
而且它也不支持環境。 文件中,所有的docker命令都是由Azure在后台執行的。 否則Azure Web App也不支持docker-compopse文件中的build
選項,查看supported options 。
我正在為完全相同的問題而苦苦掙扎。 經過大量搜索后,我發現這篇文章描述了一個不錯的小技巧。
將此添加到您的初始化/啟動腳本中:
# Get environment variables to show up in SSH session
eval $(printenv | awk -F= '{print "export " "\""$1"\"""=""\""$2"\"" }' >> /etc/profile)
我現在可以通過 SSH 運行我的管理命令。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.