Dockerfile 657 B

12345678910111213141516171819202122232425262728293031
  1. FROM node:16 as builder
  2. WORKDIR /build
  3. COPY ./web .
  4. COPY ./VERSION .
  5. RUN npm install
  6. RUN REACT_APP_VERSION=$(cat VERSION) npm run build
  7. FROM golang AS builder2
  8. ENV GO111MODULE=on \
  9. CGO_ENABLED=1 \
  10. GOOS=linux
  11. WORKDIR /build
  12. COPY . .
  13. COPY --from=builder /build/build ./web/build
  14. RUN go mod download
  15. RUN go build -ldflags "-s -w -X 'one-api/common.Version=$(cat VERSION)' -extldflags '-static'" -o one-api
  16. FROM alpine
  17. RUN apk update \
  18. && apk upgrade \
  19. && apk add --no-cache ca-certificates tzdata \
  20. && update-ca-certificates 2>/dev/null || true
  21. COPY --from=builder2 /build/one-api /
  22. EXPOSE 3000
  23. WORKDIR /data
  24. ENTRYPOINT ["/one-api"]