marriedtermiteblyi commited on
Commit
e37a26d
·
verified ·
1 Parent(s): 9221b25

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +26 -6
Dockerfile CHANGED
@@ -1,10 +1,23 @@
1
- FROM node:22
 
 
 
 
 
 
 
2
 
3
  USER root
 
 
4
  RUN apt-get update && apt-get install -y \
5
  git \
 
6
  build-essential \
7
  python3 \
 
 
 
8
  pkg-config \
9
  libssl-dev \
10
  libcairo2-dev \
@@ -15,16 +28,23 @@ RUN apt-get update && apt-get install -y \
15
  libsqlite3-dev \
16
  && rm -rf /var/lib/apt/lists/*
17
 
 
 
 
 
 
 
 
18
  WORKDIR /home/node/app
19
 
20
- # Copy và chmod với quyền root
21
  COPY start.sh /start.sh
22
  RUN chmod +x /start.sh
23
-
24
- # Đổi lại quyền cho user node
25
  RUN chown node:node /start.sh /home/node/app
26
 
27
  USER node
28
 
29
- EXPOSE 3000
30
- CMD ["/start.sh"]
 
 
 
 
1
+ # Sử dụng image Go chính thức để lấy file thực thi (Tránh lỗi PPA trên Debian)
2
+ FROM golang:1.23-bookworm AS golang-build
3
+
4
+ FROM node:22-bookworm
5
+
6
+ # 1. Copy Go từ image golang sang image node
7
+ COPY --from=golang-build /usr/local/go/ /usr/local/go/
8
+ ENV PATH="/usr/local/go/bin:${PATH}"
9
 
10
  USER root
11
+
12
+ # 2. Cài đặt các thư viện hệ thống và python3
13
  RUN apt-get update && apt-get install -y \
14
  git \
15
+ sudo \
16
  build-essential \
17
  python3 \
18
+ python3-pip \
19
+ curl \
20
+ ffmpeg \
21
  pkg-config \
22
  libssl-dev \
23
  libcairo2-dev \
 
28
  libsqlite3-dev \
29
  && rm -rf /var/lib/apt/lists/*
30
 
31
+ # 3. Cài đặt yt-dlp bản mới nhất từ GitHub
32
+ RUN curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/yt-dlp \
33
+ && chmod a+rx /usr/local/bin/yt-dlp
34
+
35
+ # Cho phép user node dùng sudo không password
36
+ RUN echo "node ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
37
+
38
  WORKDIR /home/node/app
39
 
 
40
  COPY start.sh /start.sh
41
  RUN chmod +x /start.sh
 
 
42
  RUN chown node:node /start.sh /home/node/app
43
 
44
  USER node
45
 
46
+ # Kiểm tra các thành phần đã cài đặt
47
+ RUN go version && yt-dlp --version
48
+
49
+ EXPOSE 3030
50
+ CMD ["/start.sh"]