Dockerfile 851 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. FROM oven/bun:latest as builder
  2. WORKDIR /build
  3. COPY web/package.json .
  4. RUN bun install
  5. COPY ./web .
  6. COPY ./VERSION .
  7. RUN DISABLE_ESLINT_PLUGIN='true' VITE_REACT_APP_VERSION=$(cat VERSION) bun run build
  8. FROM golang:alpine AS builder2
  9. RUN apk add --no-cache \
  10. gcc \
  11. musl-dev \
  12. sqlite-dev \
  13. build-base
  14. ENV GO111MODULE=on \
  15. CGO_ENABLED=1 \
  16. GOOS=linux
  17. WORKDIR /build
  18. ADD go.mod go.sum ./
  19. RUN go mod download
  20. COPY . .
  21. COPY --from=builder /build/dist ./web/dist
  22. RUN go build -trimpath -ldflags "-s -w -X 'one-api/common.Version=$(cat VERSION)' -linkmode external -extldflags '-static'" -o one-api
  23. FROM alpine
  24. RUN apk update \
  25. && apk upgrade \
  26. && apk add --no-cache ca-certificates tzdata ffmpeg \
  27. && update-ca-certificates
  28. COPY --from=builder2 /build/one-api /
  29. EXPOSE 3000
  30. WORKDIR /data
  31. ENTRYPOINT ["/one-api"]