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"]
