version: '3.8' services: # PostgreSQL 데이터베이스 tk-mp-postgres: image: postgres:15-alpine container_name: tk-mp-postgres restart: unless-stopped environment: POSTGRES_DB: tk_mp_bom POSTGRES_USER: tkmp_user POSTGRES_PASSWORD: tkmp_password_2025 POSTGRES_INITDB_ARGS: "--encoding=UTF-8 --locale=C" ports: - "15432:5432" volumes: - tk_mp_postgres_data:/var/lib/postgresql/data - ./database/init:/docker-entrypoint-initdb.d networks: - tk-mp-network # Redis (캐시 및 세션 관리용) tk-mp-redis: image: redis:7-alpine container_name: tk-mp-redis restart: unless-stopped ports: - "16379:6379" volumes: - tk_mp_redis_data:/data networks: - tk-mp-network # 백엔드 FastAPI 서비스 tk-mp-backend: build: context: ./backend dockerfile: Dockerfile container_name: tk-mp-backend restart: unless-stopped ports: - "10080:10080" environment: - DATABASE_URL=postgresql://tkmp_user:tkmp_password_2025@tk-mp-postgres:5432/tk_mp_bom - REDIS_URL=redis://tk-mp-redis:6379 - PYTHONPATH=/app depends_on: - tk-mp-postgres - tk-mp-redis networks: - tk-mp-network volumes: - tk_mp_uploads:/app/uploads # 프론트엔드 Nginx 서비스 tk-mp-frontend: build: context: ./frontend dockerfile: Dockerfile container_name: tk-mp-frontend restart: unless-stopped ports: - "10173:10173" depends_on: - tk-mp-backend networks: - tk-mp-network volumes: tk_mp_postgres_data: tk_mp_redis_data: tk_mp_uploads: networks: tk-mp-network: driver: bridge