Files
davinci-platform/docker-compose.test.yml
KinSun 9d5616fdc6 feat: add initial project configuration and smoke tests
- Created pnpm workspace configuration to manage packages.
- Added a placeholder .gitkeep file in the scripts directory.
- Implemented a smoke test script to validate core API and web endpoints.
- Established TypeScript base configuration for consistent compilation settings.
- Introduced Turbo configuration for task management and build processes.
2026-03-13 10:30:16 +08:00

83 lines
2.2 KiB
YAML

# Standalone test compose for smoke tests.
# Fully self-contained — not an overlay of docker-compose.yml.
# Uses a separate project name (-p davinci-platform-test) so test volumes,
# containers, and networks are fully isolated from the persistent dev stack.
#
# Usage (via Makefile):
# make test # Builds, runs smoke, tears down
# make test-up # Start test stack only
# make test-down # Tear down test stack
#
# Port mapping: test → 4301/4001/45434, dev → 4300/4000/55434
services:
db:
image: postgres:16-alpine
container_name: davinci-platform-test-db
ports:
- '45434:5432'
environment:
POSTGRES_USER: davinci
POSTGRES_PASSWORD: davinci
POSTGRES_DB: davinci_platform_test
volumes:
- platform-test-pgdata:/var/lib/postgresql/data
healthcheck:
test: ['CMD-SHELL', 'pg_isready -U davinci -d davinci_platform_test']
interval: 5s
timeout: 5s
retries: 5
networks:
- davinci-platform-test
api:
build:
context: .
dockerfile: Dockerfile
target: api-builder
container_name: davinci-platform-test-api
command: ['node', 'packages/api/dist/main.js']
ports:
- '4301:3001'
depends_on:
db:
condition: service_healthy
environment:
DATABASE_URL: postgresql://davinci:davinci@db:5432/davinci_platform_test?schema=public
PORT: 3001
NODE_ENV: test
DAVINCI_MODE: mothership
healthcheck:
test: ['CMD-SHELL', 'wget -qO- http://127.0.0.1:3001/health || exit 1']
interval: 10s
timeout: 5s
retries: 3
networks:
- davinci-platform-test
web:
build:
context: .
dockerfile: Dockerfile
target: web-builder
container_name: davinci-platform-test-web
command: ['node', 'packages/web/.next/standalone/packages/web/server.js']
ports:
- '4001:3000'
depends_on:
api:
condition: service_healthy
environment:
NEXT_PUBLIC_API_URL: http://localhost:4301/api
HOSTNAME: '0.0.0.0'
PORT: '3000'
networks:
- davinci-platform-test
volumes:
platform-test-pgdata:
networks:
davinci-platform-test:
name: davinci-platform-test