瀏覽代碼

dockerfile 增加对nodejs对处理

luojunhui 1 月之前
父節點
當前提交
8593bcb979
共有 1 個文件被更改,包括 28 次插入14 次删除
  1. 28 14
      Dockerfile

+ 28 - 14
Dockerfile

@@ -1,32 +1,46 @@
-FROM node:24-alpine AS node_builder
-
 FROM python:3.11-slim
+
 WORKDIR /app
 
-ENV PYTHONDONTWRITEBYTECODE 1
-ENV PYTHONUNBUFFERED 1
+# 环境变量
+ENV PYTHONDONTWRITEBYTECODE=1
+ENV PYTHONUNBUFFERED=1
 ENV PIP_DISABLE_PIP_VERSION_CHECK=on
+ENV NVM_DIR=/root/.nvm
 
-# 安装依赖 + 拷贝 Node.js 和 npm
+# 安装依赖并使用 nvm 安装 Node.js v24
 RUN apt-get update && \
-    apt-get install -y --no-install-recommends curl gcc libpq-dev ca-certificates && \
+    apt-get install -y --no-install-recommends \
+        curl \
+        gcc \
+        libpq-dev \
+        ca-certificates \
+        bash \
+        gnupg \
+        make \
+        build-essential \
+        openssl \
+        xz-utils && \
+    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash && \
+    . "$NVM_DIR/nvm.sh" && \
+    nvm install 24 && \
+    nvm alias default 24 && \
+    nvm use default && \
+    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 && \
     rm -rf /var/lib/apt/lists/*
 
-# 从 node_builder 拷贝 node 和 npm 到系统路径
-COPY --from=node_builder /usr/local/bin/node /usr/local/bin/
-COPY --from=node_builder /usr/local/bin/npm /usr/local/bin/
-COPY --from=node_builder /usr/local/lib/node_modules /usr/local/lib/node_modules
-
-# 验证 node 和 npm 是否安装成功(可选)
+# 验证 node/npm(可选)
 RUN node -v && npm -v
 
-
+# 安装 Python 依赖
 COPY requirements.txt .
 RUN pip install --no-cache-dir -r requirements.txt
 
+# 拷贝项目文件
 COPY . .
 
 EXPOSE 6060
 
 CMD ["hypercorn", "task_app:app", "--config", "app_config.toml"]
-