Docker Compose file

1.  Service configuration

Compose file 是一个YAML文件,用于定义 servicesnetworks, 和 volumes。其默认路径是./docker-compose.yml

一个service定义包含了这个服务启动的所有容器的配置,这个操作看起来很像是传递命令行参数给docker container create命令。同样,network和volume定义类似于docker network createdocker volume create命令。

docker container create 一样,在Dockerfile中指定的选项(比如:CMDEXPOSEVOLUMEENV等)也是一样的,你不需要在docker-compose.yml中再次指定它们。

1.1.  build

应用于构建时的配置选项

build指定了构建上下文路径

Docker Compose file

或者,也可以用一个包含context和可选的dockerfileargs的对象类指定

Docker Compose file

如果在指定build的同时还指定了image,那么将会用指定的镜像来构建

Docker Compose file

1.2.  context

指向包含Dockerfile目录的路径,或者指向git仓库的url

如果这个值是相对路径,那么它相对的是compose file所在的位置(PS:其实就是当前目录)

Docker Compose file

1.3.  Dockerfile

你也可以用Dockerfile来构建,不过这个时候必须指定context

Docker Compose file

(PS:dockerfile是用来生成镜像的,也就是说构建的时候可以从image构建,也可以从dockerfile构建,是一样的)

1.4.  args

添加构建参数,这些环境变量只能在构建过程中访问

首先,在Dockerfile中定义变量

Docker Compose file

然后,在构建的时候给这些变量赋值

Docker Compose file

或者,下面这种写法也是可以的

Docker Compose file

注意:如果在Dockerfile中,ARGFROM指令之前,那么在FROM指令下ARG不可用

你也可以在构建参数中省略它们的值,这种情况下会从Compose运行的环境中取值(PS:其实就是环境变量)

1.5.  cache_from

缓存的镜像列表

Docker Compose file

1.6.  shm_size

为这个构建的容器设置/dev/shm分区的大小

Docker Compose file

1.7.  configs

授权某个服务可以访问它下面配置的configs,支持两种语法

1.7.1.  短语法

短语法只指定config名称,授权容器可以访问config,并将其挂载到该容器下的/<config_name>

下面的例子授权redis服务访问my_config和my_other_config配置。my_config的值设置的是./my_config.txt,而my_other_config的值指定的是外部资源,这就意味着该值已经被定义在Docker中了。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpgxzg.html