File size: 2,084 Bytes
98f0a6a 90ebd67 2ed2107 ada499c 937f5bb 2ed2107 98f0a6a c791fe5 98f0a6a 2ed2107 98f0a6a c791fe5 98f0a6a 5cb2eb2 98f0a6a 3fd8f7f 98f0a6a 3fd8f7f 98f0a6a 3fd8f7f c5d26b5 1d3d916 64c8703 aeee40c 133a632 aeee40c e3ca56a aaea542 0610bba 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 53 54 55 56 |
FROM --platform=$BUILDPLATFORM node:16 AS builder
WORKDIR /src
RUN git clone https://github.com/songquanpeng/one-api.git -b v0.6.10 .
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 models2Router := router.Group("\/proxies\/v1\/models")Eof/g' router/relay.go
RUN sed -i 's/Eof/\n models2Router.Use(middleware.TokenAuth())\n {Eof/g' router/relay.go
RUN sed -i 's/Eof/\n models2Router.GET("", controller.ListModels)Eof/g' router/relay.go
RUN sed -i 's/Eof/\n models2Router.GET("\/:model", controller.RetrieveModel) }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("\/chat\/completions", controller.Relay) }/g' router/relay.go
RUN sed -i 's/if strings.HasPrefix(path, "\/v1\/chat\/completions") {/if strings.Contains(path, "\/v1\/chat\/completions") {/g' relay/relaymode/helper.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"] |