diff --git a/Dockerfile b/Dockerfile index 16715a9..3208731 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,21 +1,20 @@ -FROM node:22.12.0-alpine3.21 AS cache - -WORKDIR /cache - -COPY package.json . -COPY pnpm-lock.yaml . -COPY patches ./patches - -RUN corepack enable && pnpm install --frozen-lockfile --prod - -# main image -FROM node:22.12.0-alpine3.21 +FROM node:22.12.0-alpine3.21 AS base +ENV PNPM_HOME="/pnpm" +ENV PATH="$PNPM_HOME:$PATH" +RUN corepack enable +COPY . /app WORKDIR /app -COPY --from=cache /cache/node_modules /app/node_modules -COPY . . +FROM base AS prod-deps +RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --prod --frozen-lockfile + +FROM base AS build +RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile +RUN pnpm run build + +FROM base +COPY --from=prod-deps /app/node_modules /app/node_modules +COPY --from=build /app/dist /app/dist RUN apk add --no-cache ffmpeg -RUN corepack enable && pnpm build - CMD [ "pnpm", "start" ]