refactor: clean up project structure
- Remove old review reports (keep latest only) - Move docs/ to deploy/docs-backup/ - Move performance-testing/ to deploy/ - Clean up test output files - Organize root directory
This commit is contained in:
165
docker-compose.test.yml
Normal file
165
docker-compose.test.yml
Normal file
@@ -0,0 +1,165 @@
|
||||
# Sub2API 测试环境 Docker Compose 配置
|
||||
# 用于本地测试和CI/CD中的集成测试
|
||||
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
# PostgreSQL 测试数据库
|
||||
postgres:
|
||||
image: postgres:15-alpine
|
||||
container_name: sub2api-test-postgres
|
||||
environment:
|
||||
POSTGRES_USER: test
|
||||
POSTGRES_PASSWORD: test
|
||||
POSTGRES_DB: sub2api_test
|
||||
ports:
|
||||
- "5432:5432"
|
||||
volumes:
|
||||
- postgres_test_data:/var/lib/postgresql/data
|
||||
- ./backend/migrations:/docker-entrypoint-initdb.d
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U test -d sub2api_test"]
|
||||
interval: 5s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
networks:
|
||||
- sub2api-test
|
||||
|
||||
# Redis 测试缓存
|
||||
redis:
|
||||
image: redis:7-alpine
|
||||
container_name: sub2api-test-redis
|
||||
ports:
|
||||
- "6379:6379"
|
||||
command: redis-server --appendonly yes
|
||||
volumes:
|
||||
- redis_test_data:/data
|
||||
healthcheck:
|
||||
test: ["CMD", "redis-cli", "ping"]
|
||||
interval: 5s
|
||||
timeout: 3s
|
||||
retries: 5
|
||||
networks:
|
||||
- sub2api-test
|
||||
|
||||
# 后端服务 (测试模式)
|
||||
backend:
|
||||
build:
|
||||
context: ./backend
|
||||
dockerfile: Dockerfile.test
|
||||
container_name: sub2api-test-backend
|
||||
environment:
|
||||
- ENV=test
|
||||
- DB_HOST=postgres
|
||||
- DB_PORT=5432
|
||||
- DB_USER=test
|
||||
- DB_PASSWORD=test
|
||||
- DB_NAME=sub2api_test
|
||||
- REDIS_HOST=redis
|
||||
- REDIS_PORT=6379
|
||||
- JWT_SECRET=test-jwt-secret-for-testing-only
|
||||
- ENCRYPTION_KEY=test-encryption-key-32bytes!!
|
||||
- LOG_LEVEL=debug
|
||||
ports:
|
||||
- "8080:8080"
|
||||
depends_on:
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
redis:
|
||||
condition: service_healthy
|
||||
volumes:
|
||||
- ./backend:/app
|
||||
- go_mod_cache:/go/pkg/mod
|
||||
networks:
|
||||
- sub2api-test
|
||||
command: ["go", "run", "./cmd/server"]
|
||||
|
||||
# 前端服务 (测试构建)
|
||||
frontend:
|
||||
build:
|
||||
context: ./frontend
|
||||
dockerfile: Dockerfile.test
|
||||
container_name: sub2api-test-frontend
|
||||
environment:
|
||||
- NODE_ENV=test
|
||||
- VITE_API_URL=http://localhost:8080
|
||||
ports:
|
||||
- "3000:3000"
|
||||
volumes:
|
||||
- ./frontend:/app
|
||||
- node_modules_cache:/app/node_modules
|
||||
networks:
|
||||
- sub2api-test
|
||||
command: ["npm", "run", "preview"]
|
||||
|
||||
# InfluxDB (性能测试数据存储)
|
||||
influxdb:
|
||||
image: influxdb:2.7-alpine
|
||||
container_name: sub2api-test-influxdb
|
||||
environment:
|
||||
- INFLUXDB_DB=k6
|
||||
- INFLUXDB_ADMIN_USER=admin
|
||||
- INFLUXDB_ADMIN_PASSWORD=admin123
|
||||
- INFLUXDB_HTTP_AUTH_ENABLED=false
|
||||
ports:
|
||||
- "8086:8086"
|
||||
volumes:
|
||||
- influxdb_data:/var/lib/influxdb2
|
||||
networks:
|
||||
- sub2api-test
|
||||
|
||||
# Grafana (性能测试可视化)
|
||||
grafana:
|
||||
image: grafana/grafana:latest
|
||||
container_name: sub2api-test-grafana
|
||||
environment:
|
||||
- GF_AUTH_ANONYMOUS_ENABLED=true
|
||||
- GF_AUTH_ANONYMOUS_ORG_ROLE=Admin
|
||||
ports:
|
||||
- "3001:3000"
|
||||
volumes:
|
||||
- ./tests/performance/grafana:/etc/grafana/provisioning
|
||||
- grafana_data:/var/lib/grafana
|
||||
depends_on:
|
||||
- influxdb
|
||||
networks:
|
||||
- sub2api-test
|
||||
|
||||
# MinIO (对象存储测试)
|
||||
minio:
|
||||
image: minio/minio:latest
|
||||
container_name: sub2api-test-minio
|
||||
environment:
|
||||
- MINIO_ROOT_USER=minioadmin
|
||||
- MINIO_ROOT_PASSWORD=minioadmin
|
||||
ports:
|
||||
- "9000:9000"
|
||||
- "9001:9001"
|
||||
volumes:
|
||||
- minio_data:/data
|
||||
command: server /data --console-address ":9001"
|
||||
networks:
|
||||
- sub2api-test
|
||||
|
||||
# MailHog (邮件测试)
|
||||
mailhog:
|
||||
image: mailhog/mailhog:latest
|
||||
container_name: sub2api-test-mailhog
|
||||
ports:
|
||||
- "1025:1025" # SMTP
|
||||
- "8025:8025" # Web UI
|
||||
networks:
|
||||
- sub2api-test
|
||||
|
||||
volumes:
|
||||
postgres_test_data:
|
||||
redis_test_data:
|
||||
go_mod_cache:
|
||||
node_modules_cache:
|
||||
influxdb_data:
|
||||
grafana_data:
|
||||
minio_data:
|
||||
|
||||
networks:
|
||||
sub2api-test:
|
||||
driver: bridge
|
||||
Reference in New Issue
Block a user