Docker Compose 配置文件的構建參數說明
1 build
在構建時應用的配置選項。
build
可以指定為包含構建上下文路徑的字符串
自己構建鏡像,構建鏡像根據相對路徑 ./dir 目錄下的 dockerfile 文件構建
version: "3.9" services: webapp: build: ./dir
或者,作為一個在上下文中指定路徑的對象,以及可選的Dockerfile和args:
構建的鏡像是根據 相對路徑./dir下的 Dockerfile-alternate 文件
version: "3.9" services: webapp: build: context: ./dir dockerfile: Dockerfile-alternate args: buildno: 1
如果指定了image, 會打一個tag 是webapp:tag的鏡像,默認的鏡像的tag是 conpose的名字_service名字
version: "3.9" services: webapp: build: context: ./dir dockerfile: Dockerfile-alternate args: buildno: 1image: webapp:tag
2 context
包含 Dockerfile 的目錄的路徑,或 git 存儲庫的 url。
當提供的值是相對路徑時,它被解釋為相對於 Compose 文件的位置。此目錄也是發送到 Docker 守護程序的構建上下文。
Compose 使用生成的名稱構建並標記它,然后使用該鏡像
build: context: ./dir
3 dockerfile
指定構建的鏡像的文件,這時根據Dockerfile-alternate 構建鏡像
build:
context: .
dockerfile: Dockerfile-alternate
4 args
添加參數,只能在鏡像構建過程中訪問的環境變量,需要在dockerfilr 中指定參數
# syntax=docker/dockerfile:1 ARG buildno ARG gitcommithash RUN echo "Build number: $buildno" RUN echo "Based on commit: $gitcommithash"
這些args 在build鍵下,可以這樣映射
build: context: . args: buildno: 1 gitcommithash: cdc3b19
build: context: . args: - buildno=1 - gitcommithash=cdc3b19
注:
在你的 Dockerfile 中,如果你ARG
在FROM
指令前指定, ARG
在構建指令下是不可用的FROM
。如果您需要一個參數在兩個地方都可用,請在FROM
指令下指定它。 有關用法詳細信息,請參閱文檔中了解 ARGS 和 FROM 如何交互部分。
您可以在指定構建參數時省略該值,在這種情況下,它在構建時的值是 Compose 運行環境中的值。
args: - buildno - gitcommithash
注
使用布爾值時的提示
YAML 布爾值 ( "true"
, "false"
, "yes"
, "no"
, "on"
, "off"
) 必須用引號括起來,以便解析器將它們解釋為字符串。