Twan07 commited on
Commit
c88b1c0
·
verified ·
1 Parent(s): 23f1d3b

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +15 -12
Dockerfile CHANGED
@@ -1,10 +1,18 @@
1
- FROM node:22
 
 
 
 
 
 
 
 
 
2
 
3
  USER root
4
 
5
- # Cài đặt các công cụ cần thiết để thêm PPA các dependency khác
6
  RUN apt-get update && apt-get install -y \
7
- software-properties-common \
8
  git \
9
  sudo \
10
  build-essential \
@@ -17,17 +25,9 @@ RUN apt-get update && apt-get install -y \
17
  libgif-dev \
18
  librsvg2-dev \
19
  libsqlite3-dev \
20
- && add-apt-repository ppa:longsleep/golang-backports -y \
21
- && apt-get update \
22
- && apt-get install -y golang-go \
23
  && rm -rf /var/lib/apt/lists/*
24
 
25
- # Thiết lập biến môi trường PATH cho Go
26
- # Lưu ý: PPA thường cài Go vào /usr/bin hoặc /usr/lib/go,
27
- # nhưng mặc định /usr/bin đã nằm trong PATH rồi.
28
- ENV PATH="/usr/lib/go/bin:${PATH}"
29
-
30
- # Cho node dùng sudo không password
31
  RUN echo "node ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
32
 
33
  WORKDIR /home/node/app
@@ -38,5 +38,8 @@ RUN chown node:node /start.sh /home/node/app
38
 
39
  USER node
40
 
 
 
 
41
  EXPOSE 3030
42
  CMD ["/start.sh"]
 
1
+ # Sử dụng image Go chính thức để lấy file thực thi
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
+
9
+ # 2. Thiết lập biến môi trường PATH để dùng được lệnh 'go'
10
+ ENV PATH="/usr/local/go/bin:${PATH}"
11
 
12
  USER root
13
 
14
+ # 3. Cài đặt các thư viện cần thiết (Bỏ software-properties-common không cần PPA nữa)
15
  RUN apt-get update && apt-get install -y \
 
16
  git \
17
  sudo \
18
  build-essential \
 
25
  libgif-dev \
26
  librsvg2-dev \
27
  libsqlite3-dev \
 
 
 
28
  && rm -rf /var/lib/apt/lists/*
29
 
30
+ # Cho phép user node dùng sudo không password
 
 
 
 
 
31
  RUN echo "node ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
32
 
33
  WORKDIR /home/node/app
 
38
 
39
  USER node
40
 
41
+ # Kiểm tra thử xem go đã nhận chưa
42
+ RUN go version
43
+
44
  EXPOSE 3030
45
  CMD ["/start.sh"]