53·Docker Compose进阶

Compose 环境变量

Compose 环境变量

多种方式

services:
  app:
    # 方式一:直接定义
    environment:
      - NODE_ENV=production
      - DB_HOST=db

    # 方式二:从文件读取
    env_file:
      - .env
      - .env.production

.env 文件

# .env(Compose 自动读取)
MYSQL_ROOT_PASSWORD=secret
MYSQL_DATABASE=mydb
APP_PORT=3000
# compose.yml 中使用变量
services:
  db:
    image: mysql
    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}

  app:
    ports:
      - "${APP_PORT}:3000"

变量优先级

shell 环境变量 > .env 文件 > compose.yml environment

小结

方式说明
environment:直接定义
env_file:从文件读取
${VAR}变量替换
.envCompose 自动读取

练习编辑器

bash
Loading...