Skip to content

Commit 18b8a0c

Browse files
committed
fix: Dockerfile
1 parent 43e0feb commit 18b8a0c

File tree

1 file changed

+27
-7
lines changed

1 file changed

+27
-7
lines changed

Dockerfile

Lines changed: 27 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
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
66
RUN apk add --no-cache git
@@ -17,32 +17,52 @@ RUN git clone https://github.com/hjdhnx/drpy-node.git .
1717
# 设置npm镜像为npmmirror
1818
RUN npm config set registry https://registry.npmmirror.com
1919

20-
# 全局安装pm2工具(yarn已经自带了不需要再自己装)
21-
RUN npm install -g pm2
22-
2320
# 安装项目依赖项和puppeteer
2421
RUN 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
3332
FROM 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
# 创建一个工作目录
3641
WORKDIR /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运行时)
4453
RUN 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
# 暴露应用程序端口(根据您的项目需求调整)
4767
EXPOSE 5757
4868

0 commit comments

Comments
 (0)