File size: 1,569 Bytes
98f0a6a
90ebd67
2ed2107
98f0a6a
937f5bb
2ed2107
98f0a6a
c791fe5
98f0a6a
 
2ed2107
98f0a6a
c791fe5
98f0a6a
 
 
 
5cb2eb2
98f0a6a
 
 
 
 
3fd8f7f
98f0a6a
 
 
3fd8f7f
98f0a6a
3fd8f7f
c5d26b5
1d3d916
64c8703
aeee40c
 
1d3d916
7101dc1
64c8703
98f0a6a
 
 
 
 
 
 
 
 
 
b112922
98f0a6a
552e902
a0cb145
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
FROM --platform=$BUILDPLATFORM node:16 AS builder

WORKDIR /src
RUN git clone https://github.com/songquanpeng/one-api.git -b v0.6.8 .

WORKDIR /src/web/default
RUN npm install
RUN cp /src/VERSION .
RUN DISABLE_ESLINT_PLUGIN='true' REACT_APP_VERSION=$(cat VERSION) npm run build

WORKDIR /src/web/air
RUN npm install
RUN cp /src/VERSION .
RUN DISABLE_ESLINT_PLUGIN='true' REACT_APP_VERSION=$(cat VERSION) npm run build

FROM golang:alpine AS builder2

RUN apk add --no-cache g++ git

ENV GO111MODULE=on \
    CGO_ENABLED=1 \
    GOOS=linux

WORKDIR /src
RUN git clone https://github.com/songquanpeng/one-api.git -b v0.6.8 .

WORKDIR /build
RUN cp /src/go.mod /src/go.sum ./
RUN go mod download
RUN cp -r /src/* .
COPY --from=builder /src/web/build ./web/build
    
# fix
RUN sed -i 's/router.Group("\/v1")/router.Group("\/v1")\n	relayV2Router := router.Group("\/proxies\/v1")Eof/g' router/relay.go
RUN sed -i 's/Eof/\n	relayV2Router.Use(middleware.RelayPanicRecover(), middleware.TokenAuth(), middleware.Distribute())\n	{Eof/g' router/relay.go
RUN sed -i 's/Eof/\n		relayV2Router.POST("\/completions", controller.Relay) }/g' router/relay.go
RUN cat router/relay.go

RUN go build -trimpath -ldflags "-s -w -X 'github.com/songquanpeng/one-api/common.Version=$(cat VERSION)' -extldflags '-static'" -o one-api

FROM alpine

RUN apk update \
    && apk upgrade \
    && apk add --no-cache ca-certificates tzdata \
    && update-ca-certificates 2>/dev/null || true

COPY --from=builder2 /build/one-api /
EXPOSE 3000
WORKDIR /data
RUN chmod -R 777 /data
ENTRYPOINT ["/one-api"]