应用YAML文件
应用的字段基本上与Docker compose YAML的格式一致,除了“不支持字段”,基本上一个Compose YAML是可以在平台上直接部署的。
基本字段
image
用于部署服务的镜像,暂不支持带auth的私有镜像仓库。
image: ubuntu:14.04
image: index.alauda.cn/library/postgresql:
command
覆盖掉默认的命令
command: bundle exec thin -p 3000
links
链接到时其他服务,只能链接同一个应用内的服务,可以指定别名(app:alias)
links:
- db
- db:database
- redis
ports
暴露的端口,ports格式不再支持port1:port2,而如下所示
ports:
- "80"
- "22"
或者
ports:
- "80/http"
- "22/tcp"
并且ports所映射出的端口是都external性质的,就是公网可以访问的。
expose
expose所暴露出的端口是internal性质的, 即公网不可访问。
所有需要暴露的端口,不论external还是internal的都需要显式的在yaml文件中声明,
仅仅在Dockerfile中使用EXPOSE命令来声明端口是无效的。
expose:
- "80"
volumes
挂载一个存储卷,可以指定想要挂载出容器的路径。volumes的格式修改为path:size path即挂载路径,path为绝对路径,size为挂载卷大小单位为G。
如果不指定size,则默认挂载卷大小为10G。例如:
volumes:
- /data:10
- /mnt
enviroment
在创建容器时添加进的环境变量,只支持数组方式。环境变量有助于适用于生成不同环境。
支持环境变量的替换。即,某一环境变量可以由当前服务的其他环境变量赋值或者拼接得到。
例如:DB_HOST: $POSTGRESQL_PORT_5432_TCP_ADDR
DB_HOST
的值就是当前服务中的环境变量POSTGRESQL_PORT_5432_TCP_ADDR
所指的值。
environment:
- RACK_ENV=development
- SESSION_SECRET
扩展字段
size
用于指定服务所需的硬件资源大小。可选范围为{‘XS’, ‘S’, ‘M’, ‘L’, ‘XL’} 例如: size: L
number
用户指定某个服务所开启的实例数量。例如: number: 5
忽略字段
cap_addr
cap_drop
cgroup_parent
restart
dns
dns_search
extra_hosts
container_name
log_driver
log_opt
net
pid
security_opt
ulimits
volumn_driver
cpu_shares
cpuset
hostname
ipc
mem_limit
memswap_limit
privileged
readonly
restart
devices
stdin_open
tty
user
labels
不支持字段
dockerfile
env_file
extends
build