services: mysql: image: mysql:8.0 container_name: bizcare-mysql restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: bizcare MYSQL_USER: bizcare MYSQL_PASSWORD: bizcare ports: - "${MYSQL_PORT:-3308}:3306" volumes: - bizcare_mysql:/var/lib/mysql command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "-uroot", "-proot"] interval: 5s timeout: 5s retries: 20 start_period: 20s backend: build: context: ./backend dockerfile: Dockerfile container_name: bizcare-backend restart: unless-stopped depends_on: mysql: condition: service_healthy environment: SPRING_DATASOURCE_URL: jdbc:mysql://mysql:3306/bizcare?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Seoul&characterEncoding=UTF-8 SPRING_DATASOURCE_USERNAME: bizcare SPRING_DATASOURCE_PASSWORD: bizcare APP_CORS_ORIGINS: ${APP_CORS_ORIGINS:-http://localhost:82,http://127.0.0.1:82,http://localhost:5174,http://localhost:1420,https://bizcare.exdev.co.kr,tauri://localhost,https://tauri.localhost,http://tauri.localhost} APP_UPLOAD_DIR: /app/storage/uploads volumes: - bizcare_uploads:/app/storage/uploads ports: - "${BACKEND_PORT:-8082}:8080" healthcheck: test: ["CMD", "curl", "-fsS", "http://127.0.0.1:8080/api/health"] interval: 5s timeout: 3s retries: 20 start_period: 40s frontend: build: context: ./frontend dockerfile: Dockerfile container_name: bizcare-frontend restart: unless-stopped depends_on: backend: condition: service_healthy ports: - "${FRONTEND_PORT:-82}:80" volumes: bizcare_mysql: bizcare_uploads: