FROM node:lts-alpine WORKDIR /app # 配置alpine国内镜像加速 RUN sed -i "s@http://dl-cdn.alpinelinux.org/@https://repo.huaweicloud.com/@g" /etc/apk/repositories # 安装tzdata和ffmpeg(提供ffprobe) RUN apk add --no-cache tzdata ffmpeg # 设置时区为中国东八区 ENV TZ="Asia/Shanghai" # 安装pnpm RUN npm install -g pnpm && pnpm config set registry https://registry.npmmirror.com # 复制package.json COPY package.json ./package.json # 安装依赖 RUN pnpm install # 复制当前目录下所有文件 COPY . . # 构建项目 RUN pnpm run build # 删除开发期依赖,安装生产环境依赖 RUN rm -rf node_modules RUN pnpm install --prod # 为node_modules中的ffmpeg/ffprobe二进制文件添加可执行权限 RUN find /app/node_modules -name "ffprobe" -type f -exec chmod +x {} \; 2>/dev/null || true RUN find /app/node_modules -name "ffmpeg" -type f -exec chmod +x {} \; 2>/dev/null || true # 暴露的端口 EXPOSE 8002 # 启动命令 CMD ["pnpm", "run", "start"]