当前位置:   article > 正文

docker-compose.yml 语法详解_docker-compose.yml语法

docker-compose.yml语法

默认的模板文件是 docker-compose.yml,其中定义的每个服务都必须通过 image 指令指定镜像或 build 指令(需要 Dockerfile)来自动构建。
其它大部分指令都跟 docker run 中的类似。
如果使用 build 指令,在 Dockerfile 中设置的选项(例如:CMD, EXPOSE, VOLUME, ENV 等) 将会自动被获取,无需在 docker-compose.yml 中再次设置。

build : 可以指定为包含构建上下文路径的字符串:
	version: "3.7"
	services:
	  webapp:
	    build: ./dir
  • 1
  • 2
  • 3
  • 4

或者,作为具有在上下文下指定的路径的对象,以及可选的Dockerfile和args:

	version: "3.7"
	services:
	  webapp:
	    build:
	      context: ./dir
	      dockerfile: Dockerfile-alternate
	      args:
	        buildno: 1
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

如果您指定image以及build,则Compose使用在中指定的webapp和可选名称命名构建的图像:tagimage

	build: ./dir
	image: webapp:tag
  • 1
  • 2
CONTEXT :

包含Dockerfile的目录的路径,或git存储库的URL。

当提供的值是相对路径时,它将被解释为相对于Compose文件的位置。此目录也是发送到Docker守护程序的构建上下文。
Compose用生成的名称构建并标记它,然后使用该图像。

	build:
	  context: ./dir
  • 1
  • 2
DOCKERFILE

备用Dockerfile。
Compose使用一个替代文件进行构建。还必须指定一个构建路径。

	build:
	  context: .
	  dockerfile: Dockerfile-alternate
  • 1
  • 2
  • 3
ARGS

添加构建参数,这是只能在构建过程中访问的环境变量。
首先,在Dockerfile中指定参数:

	ARG buildno
	ARG gitcommithash
	RUN echo "Build number: $buildno"
	RUN echo "Based on commit: $gitcommithash"
  • 1
  • 2
  • 3
  • 4

然后在build键下指定参数。您可以传递映射或列表:

	build:
	  context: .
	  args:
	    buildno: 1
	    gitcommithash: cdc3b19
  • 1
  • 2
  • 3
  • 4
  • 5
	build:
	  context: .
	  args:
	    - buildno=1
	    - gitcommithash=cdc3b19
  • 1
  • 2
  • 3
  • 4
  • 5

注意:在Dockerfile中,如果您ARG在FROM指令之前指定, ARG则在下方的构建指令中不可用FROM。如果您需要一个参数在两个地方都可用,请在FROM说明中也指定它。有关用法的详细信息,请参阅了解ARGS和FROM的交互方式。

您可以在指定构建参数时忽略该值,在这种情况下,构建时的值就是运行Compose的环境中的值。

	args:
	  - buildno
	  - gitcommithash
  • 1
  • 2
  • 3

注:YAML布尔值(true,false,yes,no,on,off)必须用引号括起来,这样分析器会将它们解释为字符串。

CACHE_FROM:
注意:此选项是v3.2中的新增功能
  • 1

引擎用于缓存解析的图像列表。

	build:
	  context: .
	  cache_from:
	    - alpine:latest
	    - corp/web_app:3.14
  • 1
  • 2
  • 3
  • 4
  • 5
LABELS:
注意:此选项是v3.3中的新增功能
  • 1

使用Docker标签将元数据添加到生成的图像中。您可以使用数组或字典。
我们建议您使用反向DNS表示法,以防止您的标签与其他软件使用的标签冲突。

	build:
	  context: .
	  labels:
	    com.example.description: "Accounting webapp"
	    com.example.department: "Finance"
	    com.example.label-with-empty-value: ""
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
	build:
	  context: <
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/180639
推荐阅读
相关标签
  

闽ICP备14008679号