# For Build FROM node:22-slim AS base ENV PNPM_HOME="/pnpm" ENV PATH="$PNPM_HOME:$PATH" RUN corepack enable WORKDIR /app COPY package.json ./ COPY pnpm-lock.yaml ./ COPY tsconfig.json ./ FROM base AS builder RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile COPY . . RUN pnpm run build FROM base RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --prod --frozen-lockfile WORKDIR /app COPY ./key ./key RUN apt-get update && apt-get install -y git && rm -rf /var/lib/apt/lists/* && \ mkdir -p ~/.ssh && \ ssh-keyscan -t rsa gitea.hareworks.net >> ~/.ssh/known_hosts && \ git -c core.sshCommand="ssh -i ./key -F /dev/null" clone git@gitea.hareworks.net:Hare/blog-articles.git articles COPY --from=builder /app/build ./build COPY --from=builder /app/package.json . COPY --from=builder /app/node_modules ./node_modules EXPOSE 3000 CMD ["node", "./build"]