Twan07 commited on
Commit
db8d768
·
verified ·
1 Parent(s): 3986f8e

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +28 -19
Dockerfile CHANGED
@@ -1,40 +1,49 @@
1
- # Stage Go
2
- FROM golang:1.23-bookworm AS golang
3
 
4
- # Runtime
5
  FROM node:22-bookworm
6
 
7
- # Go
8
- COPY --from=golang /usr/local/go/ /usr/local/go/
9
  ENV PATH="/usr/local/go/bin:${PATH}"
10
 
11
  USER root
12
 
13
- # System packages
14
  RUN apt-get update && apt-get install -y \
15
- git sudo curl ffmpeg build-essential \
16
- python3 python3-pip pkg-config \
17
- libssl-dev libcairo2-dev libpango1.0-dev \
18
- libjpeg-dev libgif-dev librsvg2-dev libsqlite3-dev \
 
 
 
 
 
 
 
 
 
 
 
19
  && rm -rf /var/lib/apt/lists/*
20
 
21
- # yt-dlp
22
- RUN curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp \
23
- -o /usr/local/bin/yt-dlp \
24
- && chmod +x /usr/local/bin/yt-dlp
25
 
 
26
  RUN echo "node ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
27
 
28
- # App
29
- WORKDIR /app
30
- RUN mkdir -p /app/uploads
31
 
32
- COPY . .
33
  COPY start.sh /start.sh
34
- RUN chmod +x /start.sh && chown -R node:node /app /start.sh
 
35
 
36
  USER node
37
 
 
38
  RUN go version && yt-dlp --version
39
 
40
  EXPOSE 3001
 
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 \
24
+ libpango1.0-dev \
25
+ libjpeg-dev \
26
+ libgif-dev \
27
+ librsvg2-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 3001