# 本地开发环境 Docker Compose 配置 version: '3.8' services: # ===== API 服务(热重载开发) ===== api: build: context: . dockerfile: Dockerfile container_name: duoqi-api-dev restart: unless-stopped env_file: - .env ports: - "3000:3000" volumes: - ./src:/app/src:ro - ./db:/app/db:ro networks: - duoqi-network depends_on: mysql: condition: service_healthy # ===== MySQL 数据库(本地开发用) ===== mysql: image: mysql:8.0 container_name: duoqi-mysql-dev restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: rootpassword MYSQL_DATABASE: duoqi_dev MYSQL_USER: duoqi MYSQL_PASSWORD: duoqi ports: - "3306:3306" volumes: - mysql-data:/var/lib/mysql networks: - duoqi-network healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-prootpassword"] interval: 10s timeout: 5s retries: 5 # ===== Drizzle Studio ===== studio: image: node:20-alpine container_name: duoqi-studio-dev restart: unless-stopped working_dir: /app command: npx drizzle-kit studio environment: DATABASE_URL: mysql://duoqi:duoqi@mysql:3306/duoqi_dev ports: - "4983:4983" networks: - duoqi-network depends_on: mysql: condition: service_healthy volumes: mysql-data: driver: local networks: duoqi-network: driver: bridge