File size: 1,220 Bytes
9aab84d
 
 
 
 
 
 
 
 
 
 
 
 
 
bbe37cc
177d506
bbe37cc
8084313
bbe37cc
 
9aab84d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
bbe37cc
 
 
 
 
 
 
 
 
 
 
 
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
51
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=cloak \
    POOL_SIZE=0 \
    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 init.sh /app/init.sh

RUN mkdir -p /app/data \
    && chown -R node:node /app \
    && chmod +x /app/init.sh

USER node

EXPOSE 7860
ENTRYPOINT ["tini", "--"]
CMD ["/app/init.sh"]