ytdlp-cnd / Dockerfile
Twan07's picture
Update Dockerfile
8bbe0fe verified
# 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 3030
CMD ["/start.sh"]