「Docker Compose」- docker-compose.yaml(学习笔记)

  CREATED BY JENKINSBOT

官方文档

Compose file version 3 reference | Docker Documentation

模板文件(docker-compose.yaml)

我们常用的 docker-compose.yaml 模板(直接复制):

version: '3'

services:
  backend:
    # 镜像配置
    image: "<image address>"
    # 容器配置
    container_name: "<container name>"
    # 网络配置
    hostname: "<hostname>"
    network_mode: host
    ports:
      - <host port>:<container port>
    # 服务管理配置
    restart: always
    # 运行命令、及其环境信息
    volumes:
      - /etc/localtime:/etc/localtime
    environment:
      - <key>=<value>
    # 覆盖 ENTRYPOINT 参数
    entrypoint: /bin/entrypoint
    command: "ls"

定义环境变量

Environment variables in Compose | Docker Documentation
docker-compose invalid type, it should be a string – DevOps Stack Exchange

供 Container 使用的环境变量

这里的“环境变量”是指“在运行时传递到容器中的环境变量”,等价于 docker run –env 命令。

使用如下形式定义环境变量(注意 environment 为数组):

version: '3'
services:
  api:
    image: 'node:6-alpine'
    env_file:
     - ./Docker/api/api.env
    environment:
     - NODE_ENV=production

供 YAML 使用的环境变量

Environment variables in Compose | Docker Documentation

通过定义 .env 文件(或通过 docker-compose –env-file /path/to/envfile 参数),来指定环境变量文件的路径。

然后,我们便能够在 docker-compose.yaml 中使用这些环境变量:

version: '3'
services:
  web:
    image: "webapp:${TAG}"

参考文献

Option network_mode: host in docker compose file not working as expected – Open Source Projects / Compose – Docker Forums
Compose file version 3 reference | Docker Documentation
Convox Docs