# 版本及名称信息
## 接口版本号
version: ${VERSION}
## 项目名称
name: ${PROJECT_NAME}
# 服务信息
services:
## 服务1
### 服务名称
${SERVICE_NAME}:
### 镜像
image: ${IMAGE_NAME}:${IMAGE_TAG}
### 容器名称
container_name: ${CONTAINER_NAME}
### 容器主机名
hostname: ${HOSTNAME}
### 容器域名
domainname: ${DOMAINNAME}
### 重启规则
restart: ${RESTART_MODE}
### 隔离模式
isolation: ${ISOLCTION}
### IPC隔离模式
ipc: ${IPC}
### 是否以特权模式运行,不配置时默认否,取值范围:true、false
privileged: ${PRIVILEGED}
### 是否在容器内部运行 init 进程,取值范围:true、false
init: ${INIT}
### 容器用户
user: ${USER_NAME}:${USER_GROUP}
### 新增用户组
group_add:
- ${USER_GROUP}
### 工作目录
working_dir: ${WORKING_DIR}
### 存储卷
volumes:
#### 短语法
##### 挂载主机时区文件示例
- /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime:ro
##### 挂载存储卷示例,需要在 volumes 部分定义对应的存储卷
- ${VOLUME_NAME}:${CONTAINER_PATH}
##### 挂载主机目录示例
- ${HOST_PATH}:${CONTAINER_PATH}
#### 长语法
-
### 配置
configs:
#### 短语法
- ${CONFIG_NAME}
#### 长语法
- source: ${CONFIG_NAME}
target: ${CONTAINER_PATH}
uid: ${USER_ID}
gid: ${GROUP_ID}
mode: ${PERMISSIONS_MODE}
### 秘钥
secrets:
- ${SECRET_NAME}
### 环境变量文件
env_file:
#### 短语法
- ${ENV_FILE}
#### 长语法
##### 环境变量文件
- path: ${ENV_FILE}
##### 是否必须(true、false)
required: ${REQUIRED}
### 环境变量
environment:
#### 语法1
- ${KEY}=${VALUE}
#### 语法2
${KEY}: ${VALUE}
### 启动脚本
entrypoint: ${ENTRYPOINT}
### 启动命令
command: ${COMMAND}
### 依赖容器
depends_on:
#### 短语法
- ${SERVICE_NAME}
#### 长语法
${SERVICE_NAME}:
##### 重启规则
restart: ${RESTART_MODE}
##### 判断条件,取值范围:service_started:需被依赖容器为启动状态、service_healthy:需被依赖容器为健康状态、service_completed_successfully:需被依赖容器为完成状态
condition: ${CONDITION}
##### 是否必须
required: ${REQUIRED}
### 网络模式,取值范围:none:无网络、host:使用主机网络、service:${SERVICE}:仅允许访问指定服务
network_mode: ${NETWORK_MODE}
### 端口号
ports:
- ${HOST_PORT}:${CONTAINER_PORT}
### 需要暴露的端口号
expose:
- ${CONTAINER_PORT}
- ${CONTAINER_PORT}/${PORT_PROTO}
- ${CONTAINER_PORT_START}-${CONTAINER_PORT_END}/${PORT_PROTO}
### 网络,需在 networks 部分定义对应的网络
networks:
#### 短语法
- ${NETWORK_NAME}
#### 长语法
${NETWORK_NAME}:
##### 服务别名
aliases:
- ${ALIASES}
### DNS
#### DNS服务器,IP格式
dns:
- ${DNS}
#### DNS解析器
dns_opt:
- ${DNS_OPT}
#### DNS搜索域,域名格式
dns_search:
- ${DNS_SEARCH}
### 设置容器内部的 hosts,相当于配置容器内部的 /etc/hosts 文件
extra_hosts:
#### 语法1
- ${HOSTNAME}=${IP}
#### 语法2
${HOSTNAME}: ${IP}
### 链接其他容器
links:
- ${SERVICE}:${ALIAS}
### 监控检查,同 Dockerfile 中的 HEALTHCHECK 配置
healthcheck:
#### 测试命令
test: ${TEST_COMMAND}
#### 间隔时间
interval: ${INTERVAL_TIME}
#### 超时时间
timeout: ${TIMEOUT}
#### 重试次数
retries: ${RETRIES}
#### 启动时间
start_period: ${START_PERIOD}
#### 启动间隔
start_interval: ${START_INTERVAL}
#### 是否禁用,取值范围:true、false
disable: ${DISABLE}
### 日志配置
logging:
#### 日志驱动
driver: ${DRIVER}
#### 日志选项
options: ${OPTIONS}
### CPU限制
#### CPU数量
cpu_count: ${CPU_COUNT}
#### CPU百分比
cpu_percent: ${CPU_PERCENT}
#### CPU权重
cpu_shares: ${CPU_SHARES}
### 内存限制
#### 内存容量
mem_limit: ${MEM_LIMIT}
#### 内存预留
mem_reservation: ${MEM_RESERVATION}
#### 内存百分比
mem_swappiness: ${MEM_SWAPPINESS}
#### 虚拟内存容量
memswap_limit: ${MEMSWAP_LIMIT}
### IO限制
blkio_config:
#### 带宽比例,取值范围 10~1000 ,默认值为 500
weight: ${BANDWIDTH_PROPORTION}
#### 设备带宽比例
weight_device:
##### 设备路径
- path: ${DEVICE_PATH}
##### 设备带宽比例
weight: ${DEVICE_BANDWIDTH_PROPORTION}
#### 设备每秒读字节限制
device_read_bps:
##### 设备路径
- path: ${DEVICE_PATH}
##### 设备每秒读速率
rate: ${DEVICE_RATE}
#### 设备每秒读操作数限制
device_read_iops:
##### 设备路径
- path: ${DEVICE_PATH}
##### 设备每秒读操作数
rate: ${DEVICE_RATE}
#### 设备每秒写字节限制
device_write_bps:
- path: ${DEVICE_PATH}
rate: ${DEVICE_RATE}
#### 设备每秒写操作数限制
device_write_iops:
- path: ${DEVICE_PATH}
rate: ${DEVICE_RATE}
### 注解
annotations:
#### 语法1
- ${KEY}=${VALUE}
#### 语法2
${KEY}: ${VALUE}
### 标签
labels:
#### 语法1
- ${KEY}=${VALUE}
#### 语法2
${KEY}: ${VALUE}
### 加载其他文件,不支持循环使用
extends:
file: ${FILE}
service: ${SERVICE}
### 外置链接,使得通过此配置文件创建的容器可以与其他容器通信
external_links:
#### 语法1
- ${SERVICE}
#### 语法2
- ${SERVICE}:${ALIAS}
volumes:
${VOLUME_NAME}:
external: true
name: ${VOLUME_NAME}
configs:
${CONFIG_NAME}:
external: true
name: ${CONFIG_NAME}
file: ${CONFIG_FILE_NAME}
secrets:
${SECRET_NAME}:
external: true
name: ${SECRET_NAME}
file: ${SECRET_FILE_NAME}
networks:
${NETWORK_NAME}:
external: true
name: ${NETWORK_NAME}