diff --git a/Dockerfile SvelteKit Node.md b/Dockerfile SvelteKit Node.md new file mode 100644 index 0000000..4cf368f --- /dev/null +++ b/Dockerfile SvelteKit Node.md @@ -0,0 +1,32 @@ +This Dockerfile maximizes layer caching usage for SvelteKit apps (node adapter). + +See https://pnpm.io/docker#example-3-build-on-cicd + +```Dockerfile +FROM node:22-alpine AS base +ENV PNPM_HOME="/pnpm" +ENV PATH="$PNPM_HOME:$PATH" +RUN corepack enable +WORKDIR /app + +# Fetch dependencies +FROM base AS install +COPY pnpm-lock.yaml ./ +RUN pnpm fetch + +COPY . . +# Install production dependencies +RUN pnpm install --offline --prod --frozen-lockfile + +# Install dev dependencies (needed for the build step) +RUN pnpm install --offline --frozen-lockfile + +# Build the app +ENV NODE_ENV=production +RUN pnpm build + +ENTRYPOINT ["node", "build"] +EXPOSE 3000 +``` + +You can then safely execute `docker builder --prune -f` to clean without destroying the cache. \ No newline at end of file