- 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.
72 lines
1.7 KiB
YAML
72 lines
1.7 KiB
YAML
services:
|
|
db:
|
|
image: postgres:16-alpine
|
|
container_name: davinci-platform-db
|
|
ports:
|
|
- '55434:5432'
|
|
environment:
|
|
POSTGRES_USER: davinci
|
|
POSTGRES_PASSWORD: davinci
|
|
POSTGRES_DB: davinci_platform_dev
|
|
volumes:
|
|
- platform-pgdata:/var/lib/postgresql/data
|
|
healthcheck:
|
|
test: ['CMD-SHELL', 'pg_isready -U davinci -d davinci_platform_dev']
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 5
|
|
networks:
|
|
- davinci-platform
|
|
|
|
api:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
target: api-builder
|
|
container_name: davinci-platform-api
|
|
command: ['node', 'packages/api/dist/main.js']
|
|
ports:
|
|
- '4300:3001'
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
environment:
|
|
DATABASE_URL: postgresql://davinci:davinci@db:5432/davinci_platform_dev?schema=public
|
|
PORT: 3001
|
|
NODE_ENV: development
|
|
DAVINCI_MODE: mothership
|
|
healthcheck:
|
|
test: ['CMD-SHELL', 'wget -qO- http://127.0.0.1:3001/health || exit 1']
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 3
|
|
volumes:
|
|
- ./packages/api/src:/app/packages/api/src
|
|
networks:
|
|
- davinci-platform
|
|
|
|
web:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
target: web-builder
|
|
container_name: davinci-platform-web
|
|
command: ['node', 'packages/web/.next/standalone/packages/web/server.js']
|
|
ports:
|
|
- '4000:3000'
|
|
depends_on:
|
|
- api
|
|
environment:
|
|
NEXT_PUBLIC_API_URL: http://localhost:4300/api
|
|
HOSTNAME: '0.0.0.0'
|
|
PORT: '3000'
|
|
networks:
|
|
- davinci-platform
|
|
|
|
volumes:
|
|
platform-pgdata:
|
|
|
|
networks:
|
|
davinci-platform:
|
|
name: davinci-platform
|