new-api / Dockerfile
Codex
Disable Codex compatibility patches
fd5f165
Raw
History Blame Contribute Delete
1.46 kB
FROM alpine:3.22 AS source
RUN apk add --no-cache git
RUN git clone --depth 1 --branch v1.0.0-rc.22 https://github.com/QuantumNous/new-api.git /src
FROM oven/bun:1 AS web-builder
WORKDIR /build/web
COPY --from=source /src/web/package.json /src/web/bun.lock ./
RUN bun install --frozen-lockfile
COPY --from=source /src/web ./
COPY --from=source /src/VERSION /build/VERSION
RUN DISABLE_ESLINT_PLUGIN=true VITE_REACT_APP_VERSION=v1.0.0-rc.22 bun run build
FROM golang:1.26.1-alpine AS go-builder
ENV GO111MODULE=on CGO_ENABLED=0 GOOS=linux GOARCH=amd64 GOEXPERIMENT=greenteagc
WORKDIR /build
COPY --from=source /src/go.mod /src/go.sum ./
RUN go mod download
COPY --from=source /src ./
COPY --from=web-builder /build/web/dist ./web/dist
RUN go test ./relay/channel/openai \
./relay \
./relay/channel/gemini \
./service/relayconvert/internal/oai_chat \
&& go build -ldflags "-s -w -X 'github.com/QuantumNous/new-api/common.Version=v1.0.0-rc.22'" -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 \
&& mkdir -p /data \
&& chmod 777 /data
COPY --from=go-builder /build/new-api /new-api
COPY --from=source /src/LICENSE /src/NOTICE /src/THIRD-PARTY-LICENSES.md /licenses/
ENV PORT=7860 \
VERSION=v1.0.0-rc.22
EXPOSE 7860
WORKDIR /data
USER root
ENTRYPOINT ["/new-api"]