services: postgres: image: postgres:17-alpine environment: POSTGRES_DB: haitatsu POSTGRES_USER: haitatsu POSTGRES_PASSWORD: woof ports: - "127.0.0.1:5432:5432" volumes: - postgres-data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U haitatsu -d haitatsu"] interval: 5s timeout: 5s retries: 20 garage: image: dxflrs/garage:v2.4.1 command: /garage server --single-node --default-bucket environment: GARAGE_DEFAULT_ACCESS_KEY: "GK00000000000000000000000000000000" GARAGE_DEFAULT_SECRET_KEY: "0000000000000000000000000000000000000000000000000000000000000000" GARAGE_DEFAULT_BUCKET: haitatsu ports: - "127.0.0.1:9000:3900" volumes: - ./garage.toml:/etc/garage.toml:ro - garage-meta:/var/lib/garage/meta - garage-data:/var/lib/garage/data healthcheck: test: ["CMD", "/garage", "health"] interval: 5s timeout: 5s retries: 20 haitatsu: image: haitatsu:local depends_on: postgres: condition: service_healthy garage: condition: service_healthy ports: - "127.0.0.1:8080:8080" - "127.0.0.1:2525:25" - "127.0.0.1:1143:143" - "127.0.0.1:1465:465" - "127.0.0.1:1587:587" volumes: - ./haitatsu.compose.pkl:/etc/haitatsu/haitatsu.pkl:ro volumes: postgres-data: garage-meta: garage-data: