Twan07 commited on
Commit
7dd794f
·
verified ·
1 Parent(s): d252a5b

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +20 -29
Dockerfile CHANGED
@@ -1,50 +1,41 @@
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
50
- CMD ["/start.sh"]
 
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
41
+ CMD ["/start.sh"]