Ctrl K
ComunidadGuías…

compose.yaml

Rama master · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
services:
  peach:
    image: longmeidao/peach:${PEACH_VERSION:-edge}
    build: .
    init: true
    restart: unless-stopped
    stop_grace_period: 75s
    # 检查命令沿用镜像的 HEALTHCHECK,这里只定时间参数,默认值与镜像相同;写入敏感的宿主机见 docs/DOCKER.md。
    healthcheck:
      interval: ${PEACH_HEALTHCHECK_INTERVAL:-30s}
      timeout: ${PEACH_HEALTHCHECK_TIMEOUT:-5s}
      start_period: ${PEACH_HEALTHCHECK_START_PERIOD:-60s}
      retries: ${PEACH_HEALTHCHECK_RETRIES:-3}
    # 容器标准输出的日志;PEACH_LOG_DRIVER 只能是 json-file 或 local,两者都按下面的大小轮转。
    logging:
      driver: ${PEACH_LOG_DRIVER:-json-file}
      options:
        max-size: ${PEACH_LOG_MAX_SIZE:-10m}
        max-file: ${PEACH_LOG_MAX_FILE:-3}
    environment:
      # Watchtower 只换同一标签的新镜像;标签不是 edge 时配置页不给「一键更新」。
      PEACH_IMAGE_TAG: ${PEACH_VERSION:-edge}
      # 可选:还没有访问设置时,启动就用它设访问密码(8–256 个字符),首次设置页不再问;已有访问设置时忽略。
      # 密码写在 .env 的 PEACH_ACCESS_PASSWORD,再取消下一行的注释。
      # PEACH_ACCESS_PASSWORD: ${PEACH_ACCESS_PASSWORD}
    labels:
      # 只有带这个标签的容器归 watchtower profile 管(WATCHTOWER_LABEL_ENABLE)。
      com.centurylinklabs.watchtower.enable: "true"
    ports:
      # NAS / 局域网:在 .env 中设置 PEACH_BIND 为宿主机的局域网 IP。
      # 127.0.0.1 仅供宿主机访问;PEACH_PORT 可修改宿主机端口。
      - "${PEACH_BIND:-127.0.0.1}:${PEACH_PORT:-8900}:8900"
    volumes:
      - peach-data:/data
      # 只装一键更新的令牌:Peach 首次启动时生成,watchtower 只读这一个卷,看不到 /data。
      - peach-update:/update
      - type: bind
        source: ${PEACH_MEDIA_ROOT:-./media}
        target: /media
        read_only: true
        bind:
          propagation: rslave
          create_host_path: false

  # 可选:配置页「一键更新」(docs/DOCKER.md、ADR-0140)。`docker compose --profile watchtower up -d`
  # 才会起它。它挂着 Docker socket,等于宿主 root;只开要令牌的更新接口,不发布端口,不定时轮询。
  watchtower:
    image: nickfedor/watchtower:1.23.2
    profiles: [watchtower]
    restart: unless-stopped
    depends_on:
      # 令牌在 Peach 起服务前写好;等它就绪再启动,Watchtower 启动时读到的就是那份文件。
      peach:
        condition: service_healthy
    environment:
      WATCHTOWER_HTTP_API_ENDPOINTS: update
      WATCHTOWER_HTTP_API_TOKEN: /peach-update/watchtower-token
      WATCHTOWER_LABEL_ENABLE: "true"
      # 换下的旧镜像已失去 edge 标签,留着只占盘;回滚按版本号标签从 Docker Hub 重新拉。
      WATCHTOWER_CLEANUP: "true"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - peach-update:/peach-update:ro

volumes:
  peach-data:
  peach-update: