Spaces:
Running
Running
| # Sử dụng image Go chính thức để lấy file thực thi (Tránh lỗi PPA trên Debian) | |
| FROM golang:1.23-bookworm AS golang-build | |
| FROM node:22-bookworm | |
| # 1. Copy Go từ image golang sang image node | |
| COPY --from=golang-build /usr/local/go/ /usr/local/go/ | |
| ENV PATH="/usr/local/go/bin:${PATH}" | |
| USER root | |
| # 2. Cài đặt các thư viện hệ thống và python3 | |
| RUN apt-get update && apt-get install -y \ | |
| git \ | |
| sudo \ | |
| build-essential \ | |
| python3 \ | |
| python3-pip \ | |
| curl \ | |
| ffmpeg \ | |
| pkg-config \ | |
| libssl-dev \ | |
| libcairo2-dev \ | |
| libpango1.0-dev \ | |
| libjpeg-dev \ | |
| libgif-dev \ | |
| librsvg2-dev \ | |
| libsqlite3-dev \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # 3. Cài đặt yt-dlp bản mới nhất từ GitHub | |
| RUN curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/yt-dlp \ | |
| && chmod a+rx /usr/local/bin/yt-dlp | |
| # Cho phép user node dùng sudo không password | |
| RUN echo "node ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers | |
| WORKDIR /home/node/app | |
| COPY start.sh /start.sh | |
| RUN chmod +x /start.sh | |
| RUN chown node:node /start.sh /home/node/app | |
| USER node | |
| # Kiểm tra các thành phần đã cài đặt | |
| RUN go version && yt-dlp --version | |
| EXPOSE 3001 | |
| CMD ["/start.sh"] |