File size: 1,203 Bytes
ca50bff | 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 | FROM golang:1.25-alpine AS go-builder
ENV GOPROXY=https://goproxy.cn,direct
WORKDIR /src
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w" -o /zai2api ./cmd/main.go
FROM node:20-bookworm-slim
ENV DEBIAN_FRONTEND=noninteractive \
BROWSER_BACKEND=playwright \
CHROMIUM_PATH=/usr/bin/chromium \
CAPTCHA_PROVIDER_URL=http://127.0.0.1:9876 \
LOG_LEVEL=info \
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
ca-certificates \
chromium \
fonts-noto-cjk \
tini \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY --from=go-builder --chown=node:node /zai2api /app/zai2api
COPY --chown=node:node captcha-provider/package*.json /app/captcha-provider/
RUN cd /app/captcha-provider \
&& npm ci --omit=dev \
&& npm cache clean --force
COPY --chown=node:node captcha-provider /app/captcha-provider
COPY --chown=node:node start-space.sh /app/start-space.sh
RUN mkdir -p /app/data \
&& chown -R node:node /app \
&& chmod +x /app/start-space.sh
USER node
EXPOSE 7860
ENTRYPOINT ["tini", "--"]
CMD ["/app/start-space.sh"]
|