配置頂級元素
目錄
/<config-name>
和 Windows 容器中的 C:\<config-name>
。服務只能在 services
頂級元素中透過明確授予的 configs
屬性訪問配置。
預設情況下,配置
- 歸執行容器命令的使用者所有,但可以透過服務配置覆蓋。
- 具有世界可讀許可權(模式 0444),除非服務配置為覆蓋此許可權。
頂級 configs
宣告定義或引用在 Compose 應用程式中授予服務配置資料。配置的來源是 file
或 external
。
file
:配置使用指定路徑下檔案的內容建立。environment
:配置內容使用環境變數的值建立。在 Docker Compose 版本 2.23.1 中引入。content
:內容使用內聯值建立。在 Docker Compose 版本 2.23.1 中引入。external
:如果設定為 true,external
指定此配置已建立。Compose 不會嘗試建立它,如果它不存在,則會發生錯誤。name
: 在容器引擎中查詢的配置物件的名稱。此欄位可用於引用包含特殊字元的配置。名稱按原樣使用,不會使用專案名稱進行限定。
示例 1
<project_name>_http_config
在應用程式部署時建立,透過將 httpd.conf
的內容註冊為配置資料。
configs:
http_config:
file: ./httpd.conf
或者,http_config
可以宣告為外部。Compose 會查詢 http_config
以將配置資料公開給相關服務。
configs:
http_config:
external: true
示例 2
<project_name>_app_config
在應用程式部署時建立,透過將內聯內容註冊為配置資料。這意味著 Compose 在建立配置時會推斷變數,這使您可以根據服務配置調整內容。
configs:
app_config:
content: |
debug=${DEBUG}
spring.application.admin.enabled=${DEBUG}
spring.application.name=${COMPOSE_PROJECT_NAME}
示例 3
外部配置查詢也可以透過指定 name
來使用不同的鍵。
以下示例修改了前一個示例,使用引數 HTTP_CONFIG_KEY
查詢配置。實際查詢鍵在部署時透過 變數插值 設定,但對容器暴露為硬編碼 ID http_config
。
configs:
http_config:
external: true
name: "${HTTP_CONFIG_KEY}"
如果 external
設定為 true
,則除了 name
之外的所有其他屬性都無關緊要。如果 Compose 檢測到任何其他屬性,它會拒絕 Compose 檔案,因為它無效。