Files
meeting-minutes/docker-compose.yml
T
nad4andGitHub cf6613bb94 Phase 1 foundation: Prisma + /api/meetings CRUD (#1)
* feat(phase-1): Prisma 연동 + 회의록 CRUD API

Phase 1 foundation (ROADMAP #1~#3):

- src/lib/db.ts: Prisma 클라이언트 싱글톤 (dev hot-reload 대응)
- Meeting 스키마 확장: attendees/tags (String[]), template/depth/
  summaryMode/customPrompt (향후 참조 복원용), createdAt 인덱스
- 첫 마이그레이션 `20260421104750_init` 생성
- /api/meetings (GET 목록 + POST 생성)
  - q 파라미터로 제목/transcript/markdown 부분 검색
  - limit (max 100), offset 페이지네이션
  - attendees/tags 배열 타입 정규화
- /api/meetings/[id] (GET/PUT/DELETE)
  - PUT은 markdownMinutes/title/attendees/tags만 편집 허용
  - 존재하지 않는 id에 대해 404
- docker-compose.yml: tools 프로필에 migrate 서비스 추가
  (app 컨테이너 bloat 없이 마이그레이션 실행)
- Prisma mock 기반 API 테스트 14개 신규 (총 71 tests)

* docs: migrate 실행 단계 추가, ROADMAP의 #1/#2 완료 체크

* docs: PR 본문 드래프트 추가
2026-04-28 16:38:09 +09:00

65 lines
1.6 KiB
YAML

services:
db:
image: postgres:16-alpine
restart: unless-stopped
environment:
POSTGRES_USER: ${POSTGRES_USER:-meetinguser}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-meetingpass}
POSTGRES_DB: ${POSTGRES_DB:-meetingminutes}
volumes:
- pgdata:/var/lib/postgresql/data
ports:
- "5432:5432"
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-meetinguser}"]
interval: 5s
timeout: 5s
retries: 5
migrate:
profiles: ["tools"]
image: node:22-alpine
working_dir: /app
environment:
DATABASE_URL: postgresql://${POSTGRES_USER:-meetinguser}:${POSTGRES_PASSWORD:-meetingpass}@db:5432/${POSTGRES_DB:-meetingminutes}
volumes:
- .:/app
- migrate_node_modules:/app/node_modules
depends_on:
db:
condition: service_healthy
command: sh -c "npm ci && npx prisma migrate deploy"
app:
build:
context: .
dockerfile: Dockerfile
restart: unless-stopped
ports:
- "3000:3000"
environment:
DATABASE_URL: postgresql://${POSTGRES_USER:-meetinguser}:${POSTGRES_PASSWORD:-meetingpass}@db:5432/${POSTGRES_DB:-meetingminutes}
GEMINI_API_KEY: ${GEMINI_API_KEY:-}
volumes:
- uploads:/app/uploads
depends_on:
db:
condition: service_healthy
test:
profiles: ["tools"]
image: node:22-alpine
working_dir: /app
environment:
CI: "true"
volumes:
- .:/app
- test_node_modules:/app/node_modules
command: sh -c "npm ci && npm test"
volumes:
pgdata:
uploads:
test_node_modules:
migrate_node_modules: