簡體   English   中英

Azure App Service - 解析docker-compose yml中的環境變量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM