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 |
+
|