|
@@ -2,25 +2,16 @@ FROM python:3.11-slim
|
|
|
|
|
|
WORKDIR /app
|
|
|
|
|
|
-# 环境变量
|
|
|
ENV PYTHONDONTWRITEBYTECODE=1
|
|
|
ENV PYTHONUNBUFFERED=1
|
|
|
ENV PIP_DISABLE_PIP_VERSION_CHECK=on
|
|
|
ENV NVM_DIR=/root/.nvm
|
|
|
|
|
|
-# 安装依赖并使用 nvm 安装 Node.js v24
|
|
|
+# 安装依赖 + 安装 node + 安装 jsdom 和 canvas
|
|
|
RUN apt-get update && \
|
|
|
apt-get install -y --no-install-recommends \
|
|
|
- curl \
|
|
|
- gcc \
|
|
|
- libpq-dev \
|
|
|
- ca-certificates \
|
|
|
- bash \
|
|
|
- gnupg \
|
|
|
- make \
|
|
|
- build-essential \
|
|
|
- openssl \
|
|
|
- xz-utils && \
|
|
|
+ curl gcc libpq-dev ca-certificates bash gnupg make build-essential openssl xz-utils \
|
|
|
+ pkg-config libcairo2-dev libjpeg-dev libpango1.0-dev libgif-dev librsvg2-dev && \
|
|
|
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash && \
|
|
|
. "$NVM_DIR/nvm.sh" && \
|
|
|
nvm install 24 && \
|
|
@@ -29,18 +20,15 @@ RUN apt-get update && \
|
|
|
ln -s "$NVM_DIR/versions/node/$(ls $NVM_DIR/versions/node)/bin/node" /usr/bin/node && \
|
|
|
ln -s "$NVM_DIR/versions/node/$(ls $NVM_DIR/versions/node)/bin/npm" /usr/bin/npm && \
|
|
|
ln -s "$NVM_DIR/versions/node/$(ls $NVM_DIR/versions/node)/bin/npx" /usr/bin/npx && \
|
|
|
+ . "$NVM_DIR/nvm.sh" && nvm use default && npm install -g jsdom canvas && \
|
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
|
|
-# 验证 node/npm(可选)
|
|
|
-RUN node -v && npm -v
|
|
|
+# 验证(可选)
|
|
|
+RUN node -v && npm -v && node -p "require('canvas')" && node -p "require('jsdom')"
|
|
|
|
|
|
-RUN npm install -g jsdom canvas
|
|
|
-
|
|
|
-# 安装 Python 依赖
|
|
|
COPY requirements.txt .
|
|
|
RUN pip install --no-cache-dir -r requirements.txt
|
|
|
|
|
|
-# 拷贝项目文件
|
|
|
COPY . .
|
|
|
|
|
|
EXPOSE 6060
|