109 lines
2.1 KiB
YAML
109 lines
2.1 KiB
YAML
|
|
version: '3.8'
|
||
|
|
|
||
|
|
services:
|
||
|
|
# 前端应用
|
||
|
|
frontend:
|
||
|
|
build:
|
||
|
|
context: .
|
||
|
|
target: production
|
||
|
|
ports:
|
||
|
|
- "80:80"
|
||
|
|
environment:
|
||
|
|
- NODE_ENV=production
|
||
|
|
restart: unless-stopped
|
||
|
|
networks:
|
||
|
|
- jiebanke-network
|
||
|
|
healthcheck:
|
||
|
|
test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:80/health"]
|
||
|
|
interval: 30s
|
||
|
|
timeout: 10s
|
||
|
|
retries: 3
|
||
|
|
|
||
|
|
# 开发环境前端
|
||
|
|
frontend-dev:
|
||
|
|
build:
|
||
|
|
context: .
|
||
|
|
target: development
|
||
|
|
ports:
|
||
|
|
- "5173:5173"
|
||
|
|
volumes:
|
||
|
|
- .:/app
|
||
|
|
- /app/node_modules
|
||
|
|
environment:
|
||
|
|
- NODE_ENV=development
|
||
|
|
restart: unless-stopped
|
||
|
|
networks:
|
||
|
|
- jiebanke-network
|
||
|
|
command: npm run dev -- --host
|
||
|
|
|
||
|
|
# 后端API服务
|
||
|
|
backend:
|
||
|
|
build:
|
||
|
|
context: ../backend
|
||
|
|
dockerfile: Dockerfile
|
||
|
|
ports:
|
||
|
|
- "3000:3000"
|
||
|
|
environment:
|
||
|
|
- NODE_ENV=production
|
||
|
|
- DB_HOST=mysql
|
||
|
|
- DB_PORT=3306
|
||
|
|
- DB_NAME=jiebanke
|
||
|
|
- DB_USER=root
|
||
|
|
- DB_PASSWORD=password
|
||
|
|
- REDIS_HOST=redis
|
||
|
|
- REDIS_PORT=6379
|
||
|
|
- RABBITMQ_HOST=rabbitmq
|
||
|
|
- RABBITMQ_PORT=5672
|
||
|
|
depends_on:
|
||
|
|
- mysql
|
||
|
|
- redis
|
||
|
|
- rabbitmq
|
||
|
|
restart: unless-stopped
|
||
|
|
networks:
|
||
|
|
- jiebanke-network
|
||
|
|
|
||
|
|
# MySQL数据库
|
||
|
|
mysql:
|
||
|
|
image: mysql:8.0
|
||
|
|
ports:
|
||
|
|
- "3306:3306"
|
||
|
|
environment:
|
||
|
|
- MYSQL_ROOT_PASSWORD=password
|
||
|
|
- MYSQL_DATABASE=jiebanke
|
||
|
|
- MYSQL_USER=jiebanke
|
||
|
|
- MYSQL_PASSWORD=password
|
||
|
|
volumes:
|
||
|
|
- mysql_data:/var/lib/mysql
|
||
|
|
- ../backend/scripts/init.sql:/docker-entrypoint-initdb.d/init.sql
|
||
|
|
restart: unless-stopped
|
||
|
|
networks:
|
||
|
|
- jiebanke-network
|
||
|
|
|
||
|
|
# Redis缓存
|
||
|
|
redis:
|
||
|
|
image: redis:7-alpine
|
||
|
|
ports:
|
||
|
|
- "6379:6379"
|
||
|
|
restart: unless-stopped
|
||
|
|
networks:
|
||
|
|
- jiebanke-network
|
||
|
|
|
||
|
|
# RabbitMQ消息队列
|
||
|
|
rabbitmq:
|
||
|
|
image: rabbitmq:3-management
|
||
|
|
ports:
|
||
|
|
- "5672:5672"
|
||
|
|
- "15672:15672"
|
||
|
|
environment:
|
||
|
|
- RABBITMQ_DEFAULT_USER=admin
|
||
|
|
- RABBITMQ_DEFAULT_PASS=password
|
||
|
|
restart: unless-stopped
|
||
|
|
networks:
|
||
|
|
- jiebanke-network
|
||
|
|
|
||
|
|
volumes:
|
||
|
|
mysql_data:
|
||
|
|
|
||
|
|
networks:
|
||
|
|
jiebanke-network:
|
||
|
|
driver: bridge
|