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