b
File size: 1,745 Bytes
59554f3
9d38c4d
df66c75
9d38c4d
73138c7
 
 
 
9d38c4d
df66c75
3b9a8cb
0b2f0eb
a162cf7
df66c75
a162cf7
73138c7
 
 
59554f3
73138c7
a162cf7
59554f3
df66c75
a162cf7
df66c75
9d38c4d
a162cf7
df66c75
73138c7
a162cf7
73138c7
df66c75
a162cf7
 
df66c75
73138c7
 
 
 
9443798
bfa0d7c
 
 
d957e53
 
a162cf7
df66c75
fd775da
 
 
df66c75
05740ee
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
52
53
# 第一阶段:基础设置和代码克隆
FROM alpine:3.18 AS base
ENV TZ=Asia/Shanghai

# 设置时区并安装 Git
RUN apk add --no-cache git tzdata \
    && ln -snf /usr/share/zoneinfo/$TZ /etc/localtime \
    && echo $TZ > /etc/timezone

WORKDIR /zmal
RUN git clone --recursive https://github.com/kmizmal/blivechat.git

# 第二阶段:前端构建
FROM node:18.17.0-bullseye AS builder
WORKDIR /zmal/blivechat/frontend

# 仅复制需要的文件以提高构建缓存命中率
COPY --from=base /zmal/blivechat/frontend/package.json package.json
RUN npm install

COPY --from=base /zmal/blivechat/frontend ./
RUN npm run build

# 第三阶段:后端设置
FROM python:3.12.7-bookworm
ENV TZ=Asia/Shanghai
WORKDIR /zmal/blivechat

# 拷贝基础代码和构建好的前端
COPY --from=base /zmal/blivechat ./
COPY --from=builder /zmal/blivechat/frontend/dist frontend/dist/

# 安装 Python 依赖
RUN pip3 install --no-cache-dir -r requirements.txt

# 设置时区并调整权限
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime \
    && echo $TZ > /etc/timezone \
    && chmod -R 777 /zmal
COPY config.ini /zmal/blivechat/data/config.ini

RUN --mount=type=secret,id=ID,mode=0444,required=true \
    sed -i "s|^open_live_access_key_id *=.*|open_live_access_key_id = $(cat /run/secrets/ID)|" /zmal/blivechat/data/config.ini
#RUN --mount=type=secret,id=SECRET,mode=0444,required=true \
#    sed -i "s|^open_live_access_key_secret *=.*|open_live_access_key_secret = $(cat /run/secrets/SECRET)|" /zmal/blivechat/data/config.ini
# 暴露端口并启动
EXPOSE 12450
# 设置目录权限
RUN chmod -R 777 /zmal
RUN cat /zmal/blivechat/data/config.ini
ENTRYPOINT ["python3", "main.py"]
CMD ["--host", "0.0.0.0", "--port", "12450","--debug"]