11# 构建器阶段
2- # 使用node:current-alpine3.21作为基础镜像
3- FROM node:current-alpine3.21 AS builder
2+ # 使用node:20-alpine(17 < version < 23)作为基础镜像
3+ FROM node:20-alpine AS builder
44
55# 安装git
66RUN apk add --no-cache git
@@ -17,32 +17,52 @@ RUN git clone https://github.com/hjdhnx/drpy-node.git .
1717# 设置npm镜像为npmmirror
1818RUN npm config set registry https://registry.npmmirror.com
1919
20- # 全局安装pm2工具(yarn已经自带了不需要再自己装)
21- RUN npm install -g pm2
22-
2320# 安装项目依赖项和puppeteer
2421RUN yarn && yarn add puppeteer
2522
2623# 复制工作目录中的所有文件到一个临时目录中
2724# 以便在运行器阶段中使用
28- RUN mkdir /tmp/drpys && cp -r /app/* /tmp/drpys/
25+ RUN mkdir -p /tmp/drpys && \
26+ cp -r /app/. /tmp/drpys/
27+
2928
3029# 运行器阶段
3130# 使用alpine:latest作为基础镜像来创建一个更小的镜像
3231# 但是无法用pm2
3332FROM alpine:latest AS runner
3433
34+ # OCI labels: https://github.com/opencontainers/image-spec/blob/main/annotations.md
35+ LABEL org.opencontainers.image.authors="hjdhnx"
36+ LABEL org.opencontainers.image.licenses="GPL-3.0"
37+ LABEL org.opencontainers.image.title="drpyS"
38+ LABEL org.opencontainers.image.source="https://github.com/hjdhnx/drpy-node"
39+
3540# 创建一个工作目录
3641WORKDIR /app
3742
3843# 复制构建器阶段中准备好的文件和依赖项到运行器阶段的工作目录中
39- COPY --from=builder /tmp/drpys /app
44+ COPY --from=builder /tmp/drpys/. /app
45+ RUN cp /app/.env.development /app/.env && \
46+ rm -f /app/.env.development && \
47+ sed -i 's|^VIRTUAL_ENV[[:space:]]*=[[:space:]]*$|VIRTUAL_ENV=/app/.venv|' /app/.env && \
48+ echo '{"ali_token":"","ali_refresh_token":"","quark_cookie":"","uc_cookie":"","bili_cookie":"","thread":"10","enable_dr2":"1","enable_py":"2"}' > /app/config/env.json
4049
4150# 安装Node.js运行时(如果需要的话,这里已经假设在构建器阶段中安装了所有必要的Node.js依赖项)
4251# 由于我们已经将node_modules目录复制到了运行器阶段,因此这里不需要再次安装npm或node_modules中的依赖项
4352# 但是,我们仍然需要安装Node.js运行时本身(除非drpys项目是一个纯静态资源服务,不需要Node.js运行时)
4453RUN apk add --no-cache nodejs
4554
55+ # 安装python3依赖
56+ RUN apk add --no-cache python3 \
57+ py3-pip \
58+ py3-setuptools \
59+ py3-wheel
60+
61+ # 激活python3虚拟环境并安装依pip3赖
62+ RUN python3 -m venv /app/.venv && \
63+ . /app/.venv/bin/activate && \
64+ pip3 install -r /app/spider/py/base/requirements.txt -i https://mirrors.cloud.tencent.com/pypi/simple
65+
4666# 暴露应用程序端口(根据您的项目需求调整)
4767EXPOSE 5757
4868
0 commit comments