Update Dockerfile
Browse files- 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
|
8 |
-
COPY 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 |
-
#
|
26 |
-
COPY chat-api-main
|
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 |
-
#
|
32 |
-
|
33 |
-
|
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 |
+
|