docker-compose.yml 文件的编写版本3
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"
) 必须用引号括起来,以便解析器将它们解释为字符串。