39 lines
999 B
Docker
39 lines
999 B
Docker
# 使用 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"]
|