From ab623d12da95baa43b9d618ed113ded1f2402450 Mon Sep 17 00:00:00 2001 From: kurihada Date: Sat, 28 Feb 2026 23:39:46 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20Dockerfile=20=E6=B7=BB=E5=8A=A0=E5=9B=BD?= =?UTF-8?q?=E5=86=85=E9=95=9C=E5=83=8F=E5=8A=A0=E9=80=9F=E5=92=8C=20Chromi?= =?UTF-8?q?um=20=E9=A2=84=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - npm/pnpm 使用 registry.npmmirror.com 镜像 - 构建阶段预装 Chromium 并复制到生产镜像 --- Dockerfile | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Dockerfile b/Dockerfile index b4cfabc..d8178ac 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,17 +4,26 @@ FROM node:22-slim AS builder +# China npm mirror +RUN npm config set registry https://registry.npmmirror.com + # Enable corepack for pnpm RUN corepack enable && corepack prepare pnpm@latest --activate WORKDIR /app +# pnpm also uses npm mirror +RUN pnpm config set registry https://registry.npmmirror.com + # Copy package manifests first (layer caching for dependency install) COPY package.json pnpm-lock.yaml ./ # Install all dependencies (including devDependencies for building) RUN pnpm install --frozen-lockfile +# Install Chromium for rebrowser-playwright (during build, included in image) +RUN npx playwright install chromium + # Copy source code COPY tsconfig.json tsup.config.ts ./ COPY src/ src/ @@ -66,6 +75,9 @@ COPY --from=builder --chown=appuser:appuser /app/dist ./dist COPY --from=builder --chown=appuser:appuser /app/node_modules ./node_modules COPY --from=builder --chown=appuser:appuser /app/package.json ./package.json +# Copy Playwright browsers from builder +COPY --from=builder --chown=appuser:appuser /root/.cache/ms-playwright /home/appuser/.cache/ms-playwright + # Create data directory for cookies and API token RUN mkdir -p /home/appuser/.social-mcp \ && chown -R appuser:appuser /home/appuser/.social-mcp