Browse Source

dockerfile 增加对nodejs对处理

luojunhui 1 month ago
parent
commit
55742a0cab
1 changed files with 6 additions and 18 deletions
  1. 6 18
      Dockerfile

+ 6 - 18
Dockerfile

@@ -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