services: postgres: image: pgvector/pgvector:pg17 restart: unless-stopped ports: - "5432:5432" environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres POSTGRES_DB: cossistant volumes: - postgres_data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres"] interval: 10s timeout: 5s retries: 5 redis: image: redis:7-alpine restart: unless-stopped ports: - "6379:6379" volumes: - redis_data:/data healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 10s timeout: 5s retries: 5 geoip: build: context: ./apps/geoip dockerfile: Dockerfile restart: unless-stopped ports: - "8083:8080" environment: MAXMIND_ACCOUNT_ID: ${MAXMIND_ACCOUNT_ID:-} MAXMIND_LICENSE_KEY: ${MAXMIND_LICENSE_KEY:-} MAXMIND_EDITION_IDS: ${MAXMIND_EDITION_IDS:-GeoLite2-City GeoLite2-ASN} GEOIP_DB_DIR: /data/geoip GEOIP_UPDATE_INTERVAL_HOURS: ${GEOIP_UPDATE_INTERVAL_HOURS:-24} PORT: 8080 volumes: - geoip_data:/data/geoip healthcheck: test: [ "CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8080/health')", ] interval: 30s timeout: 5s retries: 5 volumes: postgres_data: redis_data: geoip_data: