ckst commited on
Commit
a2589e1
·
verified ·
1 Parent(s): f81139d

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +20 -17
Dockerfile CHANGED
@@ -1,11 +1,20 @@
1
- # 第一阶段:构建前端
 
 
 
 
 
 
 
 
 
2
  FROM node:18.19.0-alpine as frontend-builder
3
 
4
  WORKDIR /app
5
 
6
- # 复制前端源码
7
- COPY web-admin /app/web-admin
8
- COPY web-user /app/web-user
9
 
10
  # 安装依赖并构建 web-admin
11
  WORKDIR /app/web-admin
@@ -17,24 +26,17 @@ WORKDIR /app/web-user
17
  RUN npm install && \
18
  npm run build
19
 
20
- # 第二阶段:构建后端
21
  FROM golang:latest AS backend-builder
22
 
23
  WORKDIR /build
24
 
25
- # 复制并解压 chat-api-main.zip
26
- COPY chat-api-main.zip .
27
- RUN apt-get update && apt-get install -y unzip && \
28
- unzip chat-api-main.zip -d /build && \
29
- rm chat-api-main.zip
30
 
31
- # 将解压后的内容移动到 /build 根目录
32
- RUN mv /build/chat-api-main/* /build/ && \
33
- rm -rf /build/chat-api-main
34
-
35
- # 从前端构建阶段复制构建产物
36
- COPY --from=frontend-builder /app/web-admin/build /build/web-admin/build
37
- COPY --from=frontend-builder /app/web-user/build /build/web-user/build
38
 
39
  # 下载依赖
40
  RUN go mod download
@@ -65,3 +67,4 @@ COPY start.sh /start.sh
65
  RUN chmod +x /start.sh
66
 
67
  CMD ["/start.sh"]
 
 
1
+ # 第一阶段:解压源码
2
+ FROM alpine:latest as extractor
3
+
4
+ WORKDIR /build
5
+ COPY chat-api-main.zip .
6
+ RUN apk add --no-cache unzip && \
7
+ unzip chat-api-main.zip && \
8
+ rm chat-api-main.zip
9
+
10
+ # 第二阶段:构建前端
11
  FROM node:18.19.0-alpine as frontend-builder
12
 
13
  WORKDIR /app
14
 
15
+ # 从解压阶段复制前端源码
16
+ COPY --from=extractor /build/chat-api-main/web-admin ./web-admin
17
+ COPY --from=extractor /build/chat-api-main/web-user ./web-user
18
 
19
  # 安装依赖并构建 web-admin
20
  WORKDIR /app/web-admin
 
26
  RUN npm install && \
27
  npm run build
28
 
29
+ # 第三阶段:构建后端
30
  FROM golang:latest AS backend-builder
31
 
32
  WORKDIR /build
33
 
34
+ # 从解压阶段复制所有源码
35
+ COPY --from=extractor /build/chat-api-main/* ./
 
 
 
36
 
37
+ # 复制前端构建产物
38
+ COPY --from=frontend-builder /app/web-admin/build ./web-admin/build
39
+ COPY --from=frontend-builder /app/web-user/build ./web-user/build
 
 
 
 
40
 
41
  # 下载依赖
42
  RUN go mod download
 
67
  RUN chmod +x /start.sh
68
 
69
  CMD ["/start.sh"]
70
+