Docker Compose 配置文件中文注释及卷目录说明

学习笔记作者:admin日期:2025-06-28点击:15

摘要:本文对 BitMagnet 及其依赖的 PostgreSQL 服务的 Docker Compose 配置文件进行了详细中文注释,并说明了在宿主机上需要创建哪些文件夹以实现数据持久化。

1. Docker Compose 文件结构概述

      该配置文件使用 docker-compose.yml 定义了两个服务:`bitmagnet` 和 `postgres`,分别用于部署 BitMagnet 应用及其数据库。

2. 服务详解

2.1 bitmagnet 服务

image: ghcr.io/bitmagnet-io/bitmagnet:latest
container_name: bitmagnet

      使用 GitHub Container Registry 上的最新版 BitMagnet 镜像,容器名称为 bitmagnet

ports:
  - "3333:3333"
  - "3334:3334/tcp"
  - "3334:3334/udp"

      将主机的端口映射到容器中,分别用于 API、WebUI(3333)和 BitTorrent 协议通信(3334,支持 TCP 和 UDP)。

restart: unless-stopped

      容器会自动重启,除非手动停止。

environment:
  - POSTGRES_HOST=postgres
  - POSTGRES_PASSWORD=postgres
  - TMDB_API_KEY=***

      设置环境变量,包括 PostgreSQL 数据库地址、密码和 TMDB API 密钥(已脱敏)。

volumes:
  - ./config:/root/.config/bitmagnet

      将宿主机上的 ./config 目录挂载到容器中的 /root/.config/bitmagnet,用于持久化配置文件。

command:
  - worker
  - run
  - --keys=http_server
  - --keys=queue_server
  - --keys=dht_crawler

      运行 BitMagnet 的工作进程,并启用 HTTP 服务器、任务队列和 DHT 爬虫功能。

depends_on:
  postgres:
    condition: service_healthy

      表示 bitmagnet 服务依赖于 postgres 服务,且必须等 postgres 健康检查通过后才启动。

2.2 postgres 服务

image: postgres:16-alpine
container_name: bitmagnet-postgres

      使用 PostgreSQL 16 的 Alpine 版本镜像,容器名为 bitmagnet-postgres

volumes:
  - ./data/postgres:/var/lib/postgresql/data

      将宿主机上的 ./data/postgres 挂载到容器中,用于持久化数据库数据。

ports:
  - "5432:5432"

      将主机的 5432 端口暴露给外部访问(可选,已取消注释)。

restart: unless-stopped

      容器会自动重启,除非手动停止。

environment:
  - POSTGRES_PASSWORD=postgres
  - POSTGRES_DB=bitmagnet
  - PGUSER=postgres

      设置 PostgreSQL 用户名、密码和数据库名。

shm_size: 1g

      设置共享内存大小为 1GB,提升数据库性能。

healthcheck:
  test:
    - CMD-SHELL
    - pg_isready
  start_period: 20s
  interval: 10s

      健康检查命令,确保 PostgreSQL 正常运行后再启动主应用。

3. 宿主机需创建的文件夹

      为了实现数据持久化,宿主机需要创建以下目录:

  • ./config:用于存储 BitMagnet 的配置文件。
  • ./data/postgres:用于存储 PostgreSQL 的数据库数据。

      确保这些目录在运行 docker-compose up 前已经存在。

4. 总结

      本文详细解释了 BitMagnet 和 PostgreSQL 的 Docker Compose 配置文件,并指出在宿主机上需要创建的目录以实现数据持久化。用户可根据实际需求调整端口、环境变量或禁用 DHT 爬虫等功能。

上一篇      下一篇