# 使用 AWS ECR Public 镜像源 (通常国内可直连) FROM public.ecr.aws/docker/library/node:22-slim ENV NODE_ENV=production WORKDIR /app # 1. 替换 Debian 软件源为阿里云镜像 (解决 apt 网络问题) RUN sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list.d/debian.sources && \ apt-get update && \ apt-get install -y --no-install-recommends ffmpeg && \ rm -rf /var/lib/apt/lists/* # 验证 ffmpeg RUN ffmpeg -version && ffprobe -version # 2. 配置 pnpm 淘宝源并安装依赖 # 启用 corepack RUN corepack enable && \ pnpm config set registry https://registry.npmmirror.com/ COPY package.json ./ RUN pnpm install --prod --frozen-lockfile || pnpm install --prod COPY . . # 3. 权限与启动 ENV PORT=9520 ENV CACHE_DIR=/app/.cache ENV API_BASE=http://127.0.0.1:9558/api VOLUME ["/app/.cache"] RUN useradd -m appuser && \ mkdir -p "$CACHE_DIR" && \ chown -R appuser:appuser /app USER appuser EXPOSE $PORT CMD ["node", "index.js"]