fix: Dockerfile 添加国内镜像加速和 Chromium 预装
- npm/pnpm 使用 registry.npmmirror.com 镜像 - 构建阶段预装 Chromium 并复制到生产镜像
This commit is contained in:
+12
@@ -4,17 +4,26 @@
|
|||||||
|
|
||||||
FROM node:22-slim AS builder
|
FROM node:22-slim AS builder
|
||||||
|
|
||||||
|
# China npm mirror
|
||||||
|
RUN npm config set registry https://registry.npmmirror.com
|
||||||
|
|
||||||
# Enable corepack for pnpm
|
# Enable corepack for pnpm
|
||||||
RUN corepack enable && corepack prepare pnpm@latest --activate
|
RUN corepack enable && corepack prepare pnpm@latest --activate
|
||||||
|
|
||||||
WORKDIR /app
|
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 manifests first (layer caching for dependency install)
|
||||||
COPY package.json pnpm-lock.yaml ./
|
COPY package.json pnpm-lock.yaml ./
|
||||||
|
|
||||||
# Install all dependencies (including devDependencies for building)
|
# Install all dependencies (including devDependencies for building)
|
||||||
RUN pnpm install --frozen-lockfile
|
RUN pnpm install --frozen-lockfile
|
||||||
|
|
||||||
|
# Install Chromium for rebrowser-playwright (during build, included in image)
|
||||||
|
RUN npx playwright install chromium
|
||||||
|
|
||||||
# Copy source code
|
# Copy source code
|
||||||
COPY tsconfig.json tsup.config.ts ./
|
COPY tsconfig.json tsup.config.ts ./
|
||||||
COPY src/ src/
|
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/node_modules ./node_modules
|
||||||
COPY --from=builder --chown=appuser:appuser /app/package.json ./package.json
|
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
|
# Create data directory for cookies and API token
|
||||||
RUN mkdir -p /home/appuser/.social-mcp \
|
RUN mkdir -p /home/appuser/.social-mcp \
|
||||||
&& chown -R appuser:appuser /home/appuser/.social-mcp
|
&& chown -R appuser:appuser /home/appuser/.social-mcp
|
||||||
|
|||||||
Reference in New Issue
Block a user