Commit Graph

3 Commits

Author SHA1 Message Date
Claude (owner)
83b391c0a8 build: add Dockerfile that compiles better-sqlite3 in build stage
도커 빌드가 `RUN npm install` 에서 better-sqlite3 네이티브 빌드 실패로
죽던 문제 해결.

근본 원인:
- 베이스가 Alpine(musl) 이라 better-sqlite3 prebuilt 바이너리가 없음
  (prebuild-install: "No prebuilt binaries found ... libc=musl").
- node-gyp 풀 빌드로 폴백하는데 이미지에 make/g++/python3 가 없어
  "not found: make" 로 실패.

해결:
- 멀티스테이지 Dockerfile 추가. build 스테이지에 python3/make/g++ 를
  깔아 better-sqlite3 를 소스에서 항상 컴파일하고, `npm prune --omit=dev`
  로 정리한 node_modules(컴파일된 .node 포함)를 runtime 스테이지로 복사.
  runtime 엔 빌드 체인이 없어 가볍고, prebuilt 존재 여부에 의존하지 않음.
- glibc(debian-slim) 베이스라 musl 갭 자체를 회피. 번들 yt-dlp 표준
  바이너리도 glibc 에서 동작.
- runtime 에 ffmpeg/ffprobe(트림·60fps·FHD 변환) + yt-dlp(릴리스 바이너리)
  설치. data 를 VOLUME 으로 노출, 3000 포트 EXPOSE.
- .dockerignore 로 node_modules/dist/data/.git/.env 등 컨텍스트 제외.

검증 (로컬 docker 29.4.1):
- `docker build` 성공 (better-sqlite3 컴파일 통과)
- 컨테이너 기동 → `GET /` HTTP 200
- ffmpeg 5.1.9 / ffprobe 5.1.9 / yt-dlp 2026.03.17 / better-sqlite3
  in-memory 쿼리 모두 정상

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-01 21:39:53 +09:00
8de8bb982a chore: drop Docker scaffolding (Dockerfile/compose/.dockerignore)
도커는 사용자가 따로 만들어 쓸 예정이라 레포에서 제거합니다. README/.env.example
의 Docker 관련 안내도 같이 정리. .env 기반 PORT/HOST 설정은 직접 실행용으로 유지.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-15 17:57:45 +09:00
e4e697d287 feat: Docker support + .env-driven PORT/HOST config
직접 실행과 Docker compose 가 같은 .env 한 파일로 PORT/HOST/SESSION_SECRET 등을
공유합니다. 컨테이너는 node:22-bookworm-slim 기반에 ffmpeg + 번들된 yt-dlp 포함,
data 볼륨 마운트로 영속화합니다.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-15 17:39:23 +09:00