83 lines
2.2 KiB
YAML
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
|