# docker-compose.base.yml # 기본 서비스 정의 (공통 설정) version: "3.8" services: fems-admin: build: context: ./fems-admin target: ${NODE_ENV:-development} restart: unless-stopped logging: driver: "json-file" options: max-size: "10m" max-file: "3" healthcheck: test: ["CMD", "curl", "-f", "http://localhost:3000/health"] interval: 30s timeout: 10s retries: 3 volumes: - ./fems-admin:/app - /app/node_modules environment: - NODE_ENV=${NODE_ENV:-development} env_file: - .env.${NODE_ENV:-development} depends_on: - fems-api fems-app: build: context: ./fems-app target: ${NODE_ENV:-development} restart: unless-stopped volumes: - ./fems-app:/app - /app/node_modules environment: - NODE_ENV=${NODE_ENV:-development} env_file: - .env.${NODE_ENV:-development} depends_on: - fems-api fems-api: build: context: ./fems-api target: ${NODE_ENV:-development} restart: unless-stopped volumes: - ./fems-api:/app - /app/node_modules environment: - NODE_ENV=${NODE_ENV:-development} env_file: - .env.${NODE_ENV:-development} depends_on: - postgres - redis postgres: image: postgres:15-alpine restart: unless-stopped healthcheck: test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}"] interval: 30s timeout: 10s retries: 3 environment: POSTGRES_DB: ${POSTGRES_DB} POSTGRES_USER: ${POSTGRES_USER} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} volumes: - postgres_data:/var/lib/postgresql/data - ./backups/postgres:/backups redis: image: redis:alpine restart: unless-stopped healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 30s timeout: 10s retries: 3 command: redis-server --requirepass ${REDIS_PASSWORD} volumes: - redis_data:/data - ./backups/redis:/backups volumes: postgres_data: redis_data: