浏览代码

feat(components): dockerfile update

Yi 1 天之前
父节点
当前提交
88320fa7a2
共有 3 个文件被更改,包括 6300 次插入262 次删除
  1. 10 28
      Dockerfile
  2. 0 6
      package.json
  3. 6290 228
      pnpm-lock.yaml

+ 10 - 28
Dockerfile

@@ -1,4 +1,4 @@
-FROM node:18-slim AS build
+FROM node:16.12-alpine as build
 
 # 设置工作目录和环境变量
 WORKDIR /app/kpt-system-web
@@ -6,34 +6,16 @@ ENV NODE_OPTIONS="--max-old-space-size=4096"
 ENV PNPM_HOME=/usr/local/bin
 ENV VITE_USER_NODE_ENV=production
 
-# 安装系统依赖(改用 slim 镜像避免 Alpine 兼容性问题)
-RUN apt-get update && \
-    apt-get install -y git python3 make g++ jq && \
-    rm -rf /var/lib/apt/lists/*
-
-# 使用 Corepack 管理 PNPM
-RUN corepack enable && \
-    corepack prepare pnpm@latest --activate
+COPY . .
 
-# 复制包管理文件(利用缓存层)
-COPY package.json pnpm-lock.yaml .npmrc ./
-COPY patches ./patches
-
-# 替换原有的安装和构建部分
-RUN pnpm install --shamefully-hoist && \
-    pnpm add \
-    vite@4.5.14 \
-    vite-plugin-mock@2.9.8 \
-    mockjs@1.1.0 \
-    @antfu/install-pkg@0.1.1 \
-    @iconify/utils@1.2.2 -D && \
-    # 强制锁定模块系统
-    jq '. + {"type": "commonjs"}' package.json > package.json.tmp && \
-    mv package.json.tmp package.json && \
-    # 清理缓存
-    rm -rf node_modules .pnpm-store && \
-    pnpm install --frozen-lockfile --ignore-scripts && \
-    pnpm build
+# 安装系统依赖(改用 slim 镜像避免 Alpine 兼容性问题)
+RUN mkdir -p /root/.local/share/pnpm/store/v3/files && chown -R $(whoami) /root/.local/share/pnpm/store/v3/
+RUN npm install -g pnpm@7 && npm install -g typescript@5.1.6
+RUN echo "declare module 'lodash-es';" > types.d.ts
+RUN pnpm config set registry https://registry.npmmirror.com
+RUN pnpm update vue-demi@latest
+RUN pnpm install --fetch-timeout 60000
+RUN pnpm build
 
 # 生产阶段
 FROM nginx:alpine AS prod

+ 0 - 6
package.json

@@ -134,11 +134,5 @@
   },
   "lint-staged": {
     "*.{js,jsx,mjs,json,ts,tsx,vue}": "eslint . --fix"
-  },
-  "type": "commonjs",
-  "resolutions": {
-    "package-manager-detector": "1.2.0",
-    "@antfu/install-pkg": "0.1.1",
-    "@iconify/utils": "1.2.2"
   }
 }

文件差异内容过多而无法显示
+ 6290 - 228
pnpm-lock.yaml


部分文件因为文件数量过多而无法显示