docker-compose.yml: pgvector/pgvector:pg16 on host 54341 (side-by-side
with novelpad's 54321/54331), healthcheck-gated worker + review services
from one multi-stage Dockerfile (same image, different command — the
website/auth pattern). No Electric/Redis: nothing client-synced here.
Dockerfile adapted from novelpad-desktop @ 62c56b87, trimmed: no native
modules so no build-tools layer, no pm2. Default CMD = DBOS worker.
Verified end to end: migration applied against the container (vector
0.8.2, 6 tables, 2 HNSW indexes), containerized worker boots, DBOS
system schema lands in helmdocs_outreach ('dbos' schema — the
*_dbos_sys URL in DBOS's boot log is cosmetic; the shared pool wins).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
70 lines
2.0 KiB
YAML
70 lines
2.0 KiB
YAML
# Mirrors novelpad-desktop's docker-compose.yml conventions (pgvector/pgvector
|
|
# image, healthcheck-gated depends_on, named volumes) trimmed to this repo's
|
|
# needs: no Electric (no client sync), no Redis. Host port 54341 avoids
|
|
# novelpad-local's 54321 and website-compose's 54331 so all three stacks can
|
|
# run side by side.
|
|
#
|
|
# Migrations run from the host (drizzle-kit is a devDependency, deliberately
|
|
# absent from the production image):
|
|
# DATABASE_URL=postgresql://postgres:password@localhost:54341/helmdocs_outreach \
|
|
# yarn workspace @novelpad/outreach-core migrate
|
|
name: 'grant-outreach-local'
|
|
|
|
services:
|
|
worker:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
environment:
|
|
NODE_ENV: production
|
|
DATABASE_URL: postgresql://postgres:password@postgres:5432/helmdocs_outreach
|
|
# Uncomment (and mount below) once Phase 2 agents call Vertex:
|
|
# GCP_SERVICE_ACCOUNT_KEY_PATH: /app/.gcp/service-account.json
|
|
# NHDOJ_REGISTRY_PDF_URL: https://www.doj.nh.gov/...pdf
|
|
# volumes:
|
|
# - ./.gcp/service-account.json:/app/.gcp/service-account.json:ro
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
|
|
review:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
command: ['yarn', 'workspace', '@novelpad/outreach-review', 'start']
|
|
ports:
|
|
- '3100:3100'
|
|
environment:
|
|
NODE_ENV: production
|
|
PORT: 3100
|
|
DATABASE_URL: postgresql://postgres:password@postgres:5432/helmdocs_outreach
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
|
|
postgres:
|
|
image: pgvector/pgvector:pg16
|
|
environment:
|
|
POSTGRES_DB: helmdocs_outreach
|
|
POSTGRES_USER: postgres
|
|
POSTGRES_PASSWORD: password
|
|
ports:
|
|
- '54341:5432'
|
|
volumes:
|
|
- postgres_data:/var/lib/postgresql/data
|
|
tmpfs:
|
|
- /tmp
|
|
command:
|
|
- -c
|
|
- listen_addresses=*
|
|
- -c
|
|
- log_min_messages=notice
|
|
healthcheck:
|
|
test: ['CMD-SHELL', 'pg_isready -U postgres']
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 5
|
|
|
|
volumes:
|
|
postgres_data:
|