23 lines
883 B
Docker
23 lines
883 B
Docker
FROM node:24-alpine AS check
|
|
RUN corepack enable && corepack prepare [email protected] --activate
|
|
WORKDIR /app
|
|
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./
|
|
RUN pnpm install --frozen-lockfile
|
|
COPY . .
|
|
RUN pnpm lint:check && pnpm typecheck && pnpm test
|
|
|
|
FROM check AS build
|
|
RUN pnpm build
|
|
ARG APP_VERSION=source
|
|
ARG APP_COMMIT=unknown
|
|
ENV APP_VERSION=$APP_VERSION APP_COMMIT=$APP_COMMIT
|
|
RUN node -e 'require("fs").writeFileSync("dist/version.json", JSON.stringify({version:process.env.APP_VERSION,commit:process.env.APP_COMMIT}))'
|
|
|
|
FROM nginx:alpine AS runtime
|
|
ARG APP_VERSION=source
|
|
ARG APP_COMMIT=unknown
|
|
LABEL org.opencontainers.image.version=$APP_VERSION org.opencontainers.image.revision=$APP_COMMIT
|
|
LABEL org.opencontainers.image.source=https://git.134333.xyz/eezd/AlphaPulse
|
|
COPY --from=build /app/dist /usr/share/nginx/html
|
|
COPY nginx.conf /etc/nginx/conf.d/default.conf
|