| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- services:
- # MongoDB数据库
- mongodb:
- image: mongo:6.0
- container_name: ecommerce-mongodb
- restart: unless-stopped
- ports:
- - "27017:27017"
- environment:
- MONGO_INITDB_ROOT_USERNAME: admin
- MONGO_INITDB_ROOT_PASSWORD: admin123
- MONGO_INITDB_DATABASE: ecommerce_dev
- volumes:
- - mongodb_data:/data/db
- - ./docker/mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js:ro
- networks:
- - ecommerce-network
- # Redis缓存
- redis:
- image: redis:7.0-alpine
- container_name: ecommerce-redis
- restart: unless-stopped
- ports:
- - "6379:6379"
- command: redis-server --appendonly yes
- volumes:
- - redis_data:/data
- networks:
- - ecommerce-network
- # Elasticsearch搜索引擎
- elasticsearch:
- image: elasticsearch:8.11.0
- container_name: ecommerce-elasticsearch
- restart: unless-stopped
- ports:
- - "9200:9200"
- - "9300:9300"
- environment:
- - discovery.type=single-node
- - xpack.security.enabled=false
- - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- volumes:
- - elasticsearch_data:/usr/share/elasticsearch/data
- networks:
- - ecommerce-network
- # Parse Server
- parse-server:
- build:
- context: .
- dockerfile: Dockerfile.parse
- container_name: ecommerce-parse-server
- restart: unless-stopped
- ports:
- - "1337:1337"
- environment:
- PARSE_SERVER_APPLICATION_ID: ${PARSE_APP_ID}
- PARSE_SERVER_MASTER_KEY: ${PARSE_MASTER_KEY}
- PARSE_SERVER_DATABASE_URI: mongodb://admin:admin123@mongodb:27017/ecommerce_dev?authSource=admin
- PARSE_SERVER_REDIS_URL: redis://redis:6379
- depends_on:
- - mongodb
- - redis
- networks:
- - ecommerce-network
- # 后端API服务
- backend:
- build:
- context: .
- dockerfile: Dockerfile
- target: development
- container_name: ecommerce-backend
- restart: unless-stopped
- ports:
- - "3000:3000"
- - "9229:9229" # Node.js调试端口
- environment:
- NODE_ENV: development
- PORT: 3000
- MONGODB_URI: mongodb://admin:admin123@mongodb:27017/ecommerce_dev?authSource=admin
- REDIS_HOST: redis
- REDIS_PORT: 6379
- ELASTICSEARCH_NODE: http://elasticsearch:9200
- PARSE_SERVER_URL: http://parse-server:1337/parse
- volumes:
- - ./src:/app/src
- - ./package.json:/app/package.json
- - ./tsconfig.json:/app/tsconfig.json
- - /app/node_modules
- depends_on:
- - mongodb
- - redis
- - parse-server
- networks:
- - ecommerce-network
- command: npm run dev
- volumes:
- mongodb_data:
- redis_data:
- elasticsearch_data:
- networks:
- ecommerce-network:
- driver: bridge
|