mirror of
https://github.com/nad4-su/meeting-minutes.git
synced 2026-10-11 15:50:13 +09:00
Docker로 띄우면 화자 분리가 전혀 되지 않았다. 세 가지 문제가 겹쳐 있었다. 1. 베이스 이미지가 Alpine(musl)인데 sherpa-onnx 사전 빌드 바이너리는 glibc에 링크되어 있어 ld-linux-aarch64.so.1 을 찾지 못했다. node:22-slim 으로 교체. 2. Next 파일 트레이싱이 sherpa-onnx.node 만 복사하고 동반 공유 라이브러리 (libonnxruntime, libsherpa-onnx-c-api 등 약 33MB)를 놓쳤다. outputFileTracingIncludes 로 플랫폼 패키지를 통째로 포함시킨다. 3. models/ 가 이미지에도 볼륨에도 없어 컨테이너 안에서는 항상 미설치 상태였다. 호스트의 models/ 를 읽기 전용으로 마운트한다. 추가로 app 컨테이너에 LLM_* 환경변수를 전달한다. GEMINI_API_KEY만 넘기고 있어서 OpenAI 호환 프로바이더를 환경변수로 설정할 수 없었다. 컨테이너 안에서 실제 오디오로 화자 분리가 도는 것을 확인했다. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
37 lines
1.0 KiB
Docker
37 lines
1.0 KiB
Docker
# sherpa-onnx 사전 빌드 바이너리가 glibc에 링크되어 있어 Alpine(musl)에서는
|
|
# ld-linux-aarch64.so.1 을 찾지 못한다. glibc 계열인 slim 을 쓴다.
|
|
FROM node:22-slim AS base
|
|
|
|
FROM base AS deps
|
|
WORKDIR /app
|
|
COPY package.json package-lock.json ./
|
|
RUN npm ci
|
|
|
|
FROM base AS builder
|
|
WORKDIR /app
|
|
COPY --from=deps /app/node_modules ./node_modules
|
|
COPY . .
|
|
RUN npx prisma generate
|
|
RUN npm run build
|
|
|
|
FROM base AS runner
|
|
WORKDIR /app
|
|
ENV NODE_ENV=production
|
|
RUN groupadd --system --gid 1001 nodejs \
|
|
&& useradd --system --uid 1001 --gid nodejs nextjs
|
|
COPY --from=builder /app/public ./public
|
|
COPY --from=builder /app/.next/standalone ./
|
|
COPY --from=builder /app/.next/static ./.next/static
|
|
COPY --from=builder /app/prisma ./prisma
|
|
|
|
RUN mkdir -p uploads && chown nextjs:nodejs uploads
|
|
|
|
# sherpa-onnx의 .so는 표준 검색 경로에 없으므로 명시해준다.
|
|
ENV LD_LIBRARY_PATH=/app/node_modules/sherpa-onnx-linux-arm64:/app/node_modules/sherpa-onnx-linux-x64
|
|
|
|
USER nextjs
|
|
EXPOSE 3000
|
|
ENV PORT=3000
|
|
ENV HOSTNAME="0.0.0.0"
|
|
CMD ["node", "server.js"]
|