Files
jinshen-website/Dockerfile
R2m1liA aba3729335
All checks were successful
deploy to server / build-and-deploy (push) Successful in 2m59s
build: doker镜像构建时记录构建时间与gitcommit
- 镜像构建时会向项目目录内的version.json写入构建时间与commit-sha,并在镜像启动时输出日志
- 添加用于获取版本号的server api
2025-11-06 17:45:09 +08:00

52 lines
982 B
Docker

# -------- Base image --------
FROM node:22-alpine AS base
ENV NODE_ENV=production
WORKDIR /app
# -------- Dependencies layer -------
FROM base AS deps
WORKDIR /app
RUN corepack enable
# Copy package.json and lockfile
COPY package.json pnpm-lock.yaml .npmrc ./
# Install dependencies with cache
RUN --mount=type=cache,target=/root/.local/share/pnpm/store pnpm install
# -------- Build layer -------
FROM deps AS build
# Copy entire project
COPY . ./
ENV NITRO_PRESET=node-server
# Build the project
RUN pnpm run build
# ------- Runtime layer -------
FROM base AS runtime
WORKDIR /app
# COPY .output folder
COPY --from=build /app/.output ./
ARG BUILD_TIME
ARG GIT_COMMIT
RUN echo "{\"buildTime\":\"$BUILD_TIME\",\"gitCommit\":\"$GIT_COMMIT\"}" > /app/version.json
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
ENV PORT=3000
ENV NITRO_PRESET=node-server
ENV HOST=0.0.0.0
EXPOSE 3000
ENTRYPOINT ["/entrypoint.sh"]
CMD ["node", "/app/server/index.mjs"]