簡體   English   中英

是否可以從環境中讀取 docker-compose 中的網絡名稱?

[英]Is it possible to read network name in docker-compose from env?

我試圖不對 my.network 名稱進行硬編碼,因為它是一個開源項目(而且我有多個實例在同一台服務器上運行,用於不同的應用程序)。

定義.network時是否可以使用環境變量?

這不起作用:

networks:
  ${DOCKER_NETWORK_NAME}:
    name: ${DOCKER_NETWORK_NAME}

Compose 有一個項目名稱的內部概念,大多數 Docker object 名稱都以該名稱為前綴。 例如,如果您位於名為foo的目錄中,並且您的 Compose 文件具有

networks:
  something:

然后你運行docker.network ls ,你會看到一個名為foo_something的網絡。

我通常建議不要手動指定網絡、卷或容器的名稱。 您可以選擇要在docker-compose.yml文件中使用的任何名稱,它將被限定在該文件中。

相反,這要求系統的不同安裝要么位於具有不同名稱的目錄中,要么設置COMPOSE_PROJECT_NAME環境變量(可能在.env文件中),要么始終使用docker-compose -p標志。

在 .networks 的特定情況下,Compose提供了一個名為default的 .network,如果您實際上沒有networks:塊,則這是默認值。 使用它並沒有任何缺點,而且大多數應用程序不需要多個 internal.networks。 我只是忽略了networks:完全。

暫無
暫無

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

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