fix(setup): tolerate yt-dlp execve ENOENT on slim docker bases
문제: alpine/distroless 처럼 glibc 가 없는 도커 베이스 이미지에서는 PyInstaller 로 빌드된 yt-dlp_linux 의 동적 링커가 없어 execve 가 ENOENT 를 반환. 이전에는 npm run setup 이 통째로 실패해서 Docker 빌드를 차단했음. 수정: - 다운로드는 됐지만 --version 검증이 실패하면 throw 하지 않고 안내만 출력 후 계속 진행. 못 쓰는 바이너리는 unlink 해서 혼동 방지. - SKIP_YT_DLP=1 환경변수로 다운로드 자체를 건너뛸 수 있게 추가. - 도커/PATH 설치 가이드를 warn 으로 같이 노출 (apt/apk/pip 명령). - README 외부 의존 섹션에도 slim base / SKIP_YT_DLP 안내 추가. src/youtube.ts 의 PATH fallback 은 그대로라 시스템에 yt-dlp 가 설치돼 있으면 런타임에 자동으로 그것을 사용합니다. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -30,7 +30,7 @@ npm start
|
||||
|
||||
## 외부 의존
|
||||
|
||||
- `yt-dlp` — YouTube 영상 가져오기. `npm run setup` 이 `./bin/yt-dlp` 로 자동 설치하지만 PATH 에 이미 있어도 됩니다.
|
||||
- `yt-dlp` — YouTube 영상 가져오기. `npm run setup` 이 `./bin/yt-dlp` 로 자동 설치하지만 PATH 에 이미 있어도 됩니다. Alpine / distroless 같이 glibc 가 없는 슬림 도커 베이스에서는 번들 바이너리가 안 도니 `apk add yt-dlp` (또는 `apt-get install yt-dlp`, `pip install yt-dlp`) 로 PATH 에 직접 설치하세요. 도커 빌드에서 아예 받지 않으려면 `SKIP_YT_DLP=1 npm run setup`. (검증 실패해도 setup 은 경고만 출력하고 빌드는 계속 진행됩니다.)
|
||||
- `ffmpeg` — 영상 트림 저장 (`PATH` 에 설치). 없으면 trim 설정만 저장됩니다. `npm run setup` 이 설치 여부를 검사해 안내 메시지를 출력합니다.
|
||||
|
||||
## 데이터 위치
|
||||
|
||||
Reference in New Issue
Block a user