File size: 1,244 Bytes
8bbe0fe c88b1c0 6ced1a1 23f1d3b 8bbe0fe 6ced1a1 c2243fd 6ced1a1 8bbe0fe 6ced1a1 8bbe0fe c88b1c0 d66533d 6ced1a1 e43aae1 760c7b2 12c44f7 8bbe0fe c88b1c0 d66533d 23f1d3b | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | # 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"]
|