ckst commited on
Commit
6c47014
·
verified ·
1 Parent(s): 71309c4

Create Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +50 -0
Dockerfile ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM node:18.19.0-alpine as react-builder
2
+
3
+ WORKDIR /app
4
+ COPY ./VERSION .
5
+
6
+ # 复制 web-user 和 web-admin 的 package.json 和 package-lock.json
7
+ COPY web-user/package.json web-user/package-lock.json ./web-user/
8
+ COPY web-admin/package.json web-admin/package-lock.json ./web-admin/
9
+
10
+ # 为 web-user 和 web-admin 安装依赖项
11
+ RUN npm ci --prefix web-user
12
+ RUN npm ci --prefix web-admin
13
+
14
+ # 复制源代码
15
+ COPY web-user ./web-user
16
+ COPY web-admin ./web-admin
17
+
18
+ # 构建 web-user 和 web-admin 应用
19
+ RUN DISABLE_ESLINT_PLUGIN='true' REACT_APP_VERSION=$(cat VERSION) npm run build --prefix web-user
20
+ RUN DISABLE_ESLINT_PLUGIN='true' REACT_APP_VERSION=$(cat VERSION) npm run build --prefix web-admin
21
+
22
+ FROM golang:latest AS go-builder
23
+
24
+ WORKDIR /build
25
+ COPY go.mod go.sum ./
26
+ RUN go mod download
27
+ COPY . .
28
+
29
+ # 复制构建结果
30
+ COPY --from=react-builder /app/web-user/build ./web-user/build
31
+ COPY --from=react-builder /app/web-admin/build ./web-admin/build
32
+
33
+ # 构建 Go 二进制文件
34
+ RUN go build -ldflags "-s -w -X 'one-api/common.Version=$(cat VERSION)' -extldflags '-static'" -o bin/chat-api
35
+
36
+ FROM alpine:latest
37
+
38
+ RUN apk update \
39
+ && apk upgrade \
40
+ && apk add --no-cache ca-certificates tzdata ffmpeg ffmpeg-tools \
41
+ && update-ca-certificates 2>/dev/null || true \
42
+ && rm -rf /var/cache/apk/*
43
+
44
+ # 复制 Go 二进制文件
45
+ COPY --from=go-builder /build/bin/chat-api /chat-api
46
+
47
+ EXPOSE 3000
48
+
49
+ WORKDIR /data
50
+ ENTRYPOINT ["/chat-api"]