簡體   English   中英

用於 Linux 容器的 Azure Web 應用服務未從 docker-compose 文件中獲取環境變量

[英]Azure web app service for Linux containers not picking up environment variables from docker-compose file

我不確定我是否誤解了這應該如何工作。

我有一個 docker compose 文件(如下),它為單個“服務”/圖像定義了環境變量:

services:
  webui:
    image: ${DOCKER_REGISTRY-}webui
    build:
      context: .
      dockerfile: src/WebUI/Dockerfile
    environment:
      UseInMemoryDatabase: false
      ASPNETCORE_ENVIRONMENT: Production
      ASPNETCORE_URLS: https://+:443;http://+:80
      ConnectionStrings__DefaultConnection: "********************************"
    ports:
      - "5000:5000"
      - "5001:5001"
    restart: always

當我打開 web 應用程序的 kudu 並查看環境標簽時,上面定義的環境變量都不存在。

我通過轉到azure app -> configuration - --> application settings手動設置它們,並為上面的每個 env 變量添加一條記錄。
我可以重新啟動應用程序,現在可以看到azure 應用程序中列出的變量-> 高級工具 -> Kudu -> 環境 -> AppSettings

我還必須將連接字符串添加到 azure 應用程序門戶的單獨連接字符串設置中。

題:

我理解正確嗎? 應用服務是否應該在我的 docker-compose 文件中“查看”我的環境變量並將它們添加到正在運行的應用服務的應用設置中? 或者必須在 azure 應用程序服務的配置中再次定義每個變量是否正常?

提前致謝

不正確。 應用設置中的環境變量只有在 Web App 處於運行狀態時才能訪問。 目前不支持在 docker-compose 文件中設置自定義變量。 據我所知,只有 Azure 設置的串行變量可以在WEBAPP_STORAGE_HOME -compose 文件中使用,例如變量WEBAPP_STORAGE_HOME 但對於圖像選項,它不支持。

您在撰寫文件中正確設置了環境變量。 應用服務會將它們注入您的容器中,因此無需將它們復制為應用設置。

奇怪的是,如果您查看啟動日志中的 docker run 命令,它們不是作為參數傳遞的,而且它們也沒有列在 Kudu 的環境頁面中。 這讓我很失望,但我使用 Kuard 圖像進行了測試,並且能夠看到我的 env var。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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