compose.yaml

一个例子:
services中包含了两个服务:server和db。其中,db 是 server 的依赖项。

services:
  server:
    build:
      context: .
    ports:
      - 5000:5000
    environment: 
      - POSTGRES_PASSWORD=mysecretpassword
    depends_on:  # 当前服务的依赖项和要求
      db:
        condition: service_healthy
    develop:  # 开发选项
      watch:
        - action: rebuild   # 一旦文件被修改,就重新 build 应用
          path: .
  db:
    image: postgres
    restart: always
    user: postgres
    secrets:
      - db-password
    volumes:
      - db-data:/var/lib/postgresql/data
    environment:
      - POSTGRES_DB=example
      - POSTGRES_PASSWORD_FILE=/run/secrets/db-password
    expose:
      - 5432
    healthcheck:
      test: [ "CMD", "pg_isready" ]
      interval: 10s
      timeout: 5s
      retries: 5
volumes:
  db-data:
secrets:
  db-password:
    file: db/password.txt

docker-watch