app / Dockerfile
blue-blue's picture
Update Dockerfile
36ce5ec verified
# =======================
# 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"]