services: postgres: image: postgres:16.8-alpine container_name: fengying-postgres restart: unless-stopped environment: POSTGRES_USER: ${POSTGRES_USER:-ops} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} POSTGRES_DB: ${POSTGRES_DB:-enterprise_ops} ports: - "127.0.0.1:15432:5432" volumes: - /data/docker/pg:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-ops} -d ${POSTGRES_DB:-enterprise_ops}"] interval: 5s timeout: 5s retries: 20 redis: image: redis:7.4-alpine container_name: fengying-redis restart: unless-stopped command: ["redis-server", "--appendonly", "yes"] ports: - "127.0.0.1:16379:6379" volumes: - /data/docker/redis:/data healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 5s timeout: 3s retries: 20 minio: image: minio/minio:RELEASE.2025-04-22T22-12-26Z container_name: fengying-minio restart: unless-stopped command: server /data --console-address ":19001" environment: MINIO_ROOT_USER: ${MINIO_ACCESS_KEY:-fengying} MINIO_ROOT_PASSWORD: ${MINIO_SECRET_KEY} ports: - "127.0.0.1:19000:9000" - "127.0.0.1:19001:19001" volumes: - /data/docker/minio:/data npm: image: jc21/nginx-proxy-manager:latest container_name: fengying-npm restart: unless-stopped network_mode: host environment: DISABLE_IPV6: "true" volumes: - /data/npm/data:/data - /data/npm/letsencrypt:/etc/letsencrypt