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"]