name: hair-keeper services: postgresql: image: bitnami/postgresql:17 # https://hub.docker.com/r/bitnami/postgresql restart: always ports: - "${POSTGRESQL_PORT}:5432" environment: POSTGRESQL_USERNAME: ${POSTGRESQL_USERNAME} POSTGRESQL_PASSWORD: ${POSTGRESQL_PASSWORD} POSTGRESQL_INITDB_ARGS: "--encoding=UTF-8 --locale=C" volumes: - postgresql_data:/bitnami/postgresql redis: image: redis:8-alpine # https://hub.docker.com/_/redis ports: - "${REDIS_PORT}:6379" command: redis-server --requirepass ${REDIS_PASSWORD} --appendonly yes volumes: - redis_data:/data restart: always minio: image: minio/minio:RELEASE.2025-07-23T15-54-02Z ports: - "${MINIO_API_PORT}:9000" # API端口 - "${MINIO_CONSOLE_PORT}:9001" # Console端口 environment: MINIO_ROOT_USER: ${MINIO_ROOT_USER} MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD} MINIO_SERVER_URL: ${MINIO_SERVER_URL} volumes: - minio_data:/data command: server /data --console-address ":9001" restart: always volumes: postgresql_data: redis_data: minio_data: