|
|
|
|
|
|
|
|
|
|
|
FROM oven/bun:latest AS builder |
|
|
|
|
|
WORKDIR /build |
|
|
|
|
|
COPY web/package.json web/bun.lock ./ |
|
|
RUN bun install |
|
|
|
|
|
COPY web ./web |
|
|
COPY VERSION ./VERSION |
|
|
|
|
|
RUN DISABLE_ESLINT_PLUGIN=true \ |
|
|
VITE_REACT_APP_VERSION=$(cat VERSION) \ |
|
|
bun run build |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FROM golang:1.22-alpine AS builder2 |
|
|
|
|
|
ENV CGO_ENABLED=0 GO111MODULE=on |
|
|
WORKDIR /build |
|
|
|
|
|
COPY go.mod go.sum ./ |
|
|
RUN go mod download |
|
|
|
|
|
COPY . . |
|
|
COPY --from=builder /build/dist ./web/dist |
|
|
|
|
|
RUN go build -ldflags="-s -w \ |
|
|
-X github.com/QuantumNous/new-api/common.Version=$(cat VERSION)" \ |
|
|
-o new-api |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FROM debian:bookworm-slim |
|
|
|
|
|
RUN apt-get update && \ |
|
|
apt-get install -y --no-install-recommends \ |
|
|
ca-certificates tzdata libasan8 wget && \ |
|
|
rm -rf /var/lib/apt/lists/* && \ |
|
|
update-ca-certificates |
|
|
|
|
|
COPY --from=builder2 /build/new-api /new-api |
|
|
|
|
|
EXPOSE 3000 |
|
|
WORKDIR /data |
|
|
ENTRYPOINT ["/new-api"] |
|
|
|