version: "3.8" services: postgres: image: postgres:15 container_name: polymarket-postgres ports: - "${POSTGRES_PORT:-5432}:5432" volumes: - postgres_data:/var/lib/postgresql/data environment: POSTGRES_DB: ${POSTGRES_DB:-polymarket_tracker} POSTGRES_USER: ${POSTGRES_USER:-tracker} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-dev_password} healthcheck: test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-tracker} -d ${POSTGRES_DB:-polymarket_tracker}"] interval: 10s timeout: 5s retries: 5 start_period: 10s restart: unless-stopped redis: image: redis:7 container_name: polymarket-redis ports: - "${REDIS_PORT:-6379}:6379" volumes: - redis_data:/data command: redis-server --appendonly yes healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 10s timeout: 5s retries: 5 start_period: 5s restart: unless-stopped # Optional development tools - use with: docker compose --profile tools up adminer: image: adminer:latest container_name: polymarket-adminer ports: - "${ADMINER_PORT:-8080}:8080" depends_on: postgres: condition: service_healthy profiles: - tools restart: unless-stopped redis-insight: image: redis/redisinsight:latest container_name: polymarket-redis-insight ports: - "${REDIS_INSIGHT_PORT:-5540}:5540" volumes: - redis_insight_data:/data depends_on: redis: condition: service_healthy profiles: - tools restart: unless-stopped volumes: postgres_data: driver: local redis_data: driver: local redis_insight_data: driver: local