version: '3.8' services: # NestJS应用 (开发环境) app: build: context: . dockerfile: Dockerfile.dev ports: - "3000:3000" environment: - NODE_ENV=development - DB_HOST=db - DB_PORT=3306 - DB_USERNAME=root - DB_PASSWORD=123456 - DB_DATABASE=wwjcloud - REDIS_HOST=redis - REDIS_PORT=6379 - REDIS_PASSWORD= - REDIS_DB=0 volumes: - .:/app - /app/node_modules depends_on: - db - redis networks: - wwjcloud-network restart: unless-stopped # MySQL数据库 db: image: mysql:8.0 platform: linux/amd64 container_name: wwjcloud_mysql ports: - "3306:3306" environment: - MYSQL_ROOT_PASSWORD=123456 - MYSQL_DATABASE=wwjcloud - MYSQL_USER=wwjcloud - MYSQL_PASSWORD=123456 - TZ=Asia/Shanghai volumes: - mysql_data:/var/lib/mysql networks: - wwjcloud-network restart: unless-stopped # Redis缓存 redis: image: redis:7-alpine container_name: wwjcloud_redis ports: - "6379:6379" volumes: - redis_data:/data - ./docker/redis/redis.conf:/usr/local/etc/redis/redis.conf networks: - wwjcloud-network restart: unless-stopped command: redis-server /usr/local/etc/redis/redis.conf # phpMyAdmin (数据库管理) phpmyadmin: image: phpmyadmin/phpmyadmin container_name: wwjcloud_phpmyadmin ports: - "18080:80" environment: - PMA_HOST=db - PMA_USER=root - PMA_PASSWORD=123456 depends_on: - db networks: - wwjcloud-network restart: unless-stopped # Redis Commander (Redis管理) redis-commander: image: rediscommander/redis-commander container_name: wwjcloud_redis_commander ports: - "8081:8081" environment: - REDIS_HOSTS=local:redis:6379 depends_on: - redis networks: - wwjcloud-network restart: unless-stopped volumes: mysql_data: redis_data: networks: wwjcloud-network: driver: bridge