Spaces:
Runtime error
Runtime error
# 使用Node.js的Alpine Linux版本作为基础镜像 | |
FROM node:20-alpine AS base | |
ENV PNPM_HOME="/pnpm" | |
ENV PATH="$PNPM_HOME:$PATH" | |
# 全局安装pnpm | |
RUN npm i -g pnpm | |
# 创建一个新的构建阶段,克隆GitHub仓库 | |
FROM base AS clone | |
WORKDIR /usr/src/app | |
RUN apk add --no-cache git | |
RUN git clone https://github.com/cooderl/wewe-rss.git . | |
# 构建应用 | |
FROM base AS build | |
COPY --from=clone /usr/src/app /usr/src/app | |
WORKDIR /usr/src/app | |
# 使用pnpm安装依赖,构建应用 | |
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile | |
RUN pnpm run -r build | |
# 部署命令调整为使用克隆的代码 | |
RUN pnpm deploy --filter=server --prod /app | |
RUN pnpm deploy --filter=server --prod /app-sqlite | |
# 生成Prisma客户端 | |
RUN cd /app && pnpm exec prisma generate | |
RUN cd /app-sqlite && rm -rf ./prisma && mv prisma-sqlite prisma && pnpm exec prisma generate | |
WORKDIR /app | |
EXPOSE 4000 | |
# 环境变量设置 | |
ENV NODE_ENV=production | |
ENV HOST="0.0.0.0" | |
ENV SERVER_ORIGIN_URL="" | |
ENV MAX_REQUEST_PER_MINUTE=60 | |
ENV AUTH_CODE="" | |
ENV DATABASE_URL="" | |
ENV CRON_EXPRESSION="" | |
RUN chmod +x ./docker-bootstrap.sh | |
CMD ["./docker-bootstrap.sh"] | |
# 定义最终使用的app阶段 | |
FROM base AS app | |
COPY --from=build /app /app | |
WORKDIR /app | |
EXPOSE 4000 | |
# 环境变量设置 | |
ENV NODE_ENV=production | |
ENV HOST="0.0.0.0" | |
ENV SERVER_ORIGIN_URL="" | |
ENV MAX_REQUEST_PER_MINUTE=60 | |
ENV AUTH_CODE="" | |
ENV DATABASE_URL="" | |
ENV CRON_EXPRESSION="0 8 * * *" | |
RUN chmod +x ./docker-bootstrap.sh | |
CMD ["./docker-bootstrap.sh"] | |