File size: 1,096 Bytes
ac613eb | 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 | FROM golang:1.25 AS 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=cloak \
POOL_SIZE=0 \
CHROMIUM_PATH=/usr/bin/chromium \
CAPTCHA_PROVIDER_URL=http://127.0.0.1:9876 \
LOG_LEVEL=info \
PORT=7860 \
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
ca-certificates \
chromium \
fonts-liberation \
libnss3 \
libxss1 \
tini \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY --from=builder /zai2api /app/zai2api
COPY captcha-provider/package*.json /app/captcha-provider/
RUN cd /app/captcha-provider \
&& npm ci --omit=dev \
&& npm cache clean --force
COPY captcha-provider /app/captcha-provider
COPY init.sh /app/init.sh
RUN mkdir -p /app/data \
&& chmod +x /app/init.sh
EXPOSE 7860
ENTRYPOINT ["tini", "--"]
CMD ["/app/init.sh"]
|