services: postgres: container_name: wm-postgres image: postgres:18-alpine ports: - "${POSTGRES_PORT_MAPPING}:${POSTGRES_PORT}" environment: - POSTGRES_DB=${POSTGRES_DB} - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} env_file: - .env volumes: - postgres_data:/var/lib/postgresql - ./db/init/init.sql:/docker-entrypoint-initdb.d/01_init.sql restart: unless-stopped healthcheck: test: [ "CMD-SHELL", "sh -c 'pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}'", ] interval: 10s timeout: 3s retries: 5 start_period: 30s redis: container_name: wm-redis image: redis:8-alpine command: redis-server --requirepass ${REDIS_PASSWORD} ports: - "${REDIS_PORT_MAPPING}:${REDIS_PORT}" restart: unless-stopped env_file: - .env volumes: - redis_data:/data healthcheck: test: ["CMD", "redis-cli", "--pass", "${REDIS_PASSWORD}", "ping"] interval: 10s timeout: 3s retries: 5 start_period: 30s volumes: postgres_data: redis_data: