File size: 1,066 Bytes
36ce5ec 3e43329 36ce5ec 3e43329 36ce5ec 3e43329 36ce5ec 3e43329 36ce5ec 3e43329 36ce5ec 3e43329 36ce5ec 3e43329 36ce5ec 3e43329 | 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 | # =======================
# Frontend build (Bun)
# =======================
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
# =======================
# Backend build (Go)
# =======================
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
# =======================
# Runtime image
# =======================
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"]
|