FROM node:24-bookworm-slim AS build WORKDIR /app RUN apt-get update \ && apt-get install -y --no-install-recommends python3 make g++ \ && rm -rf /var/lib/apt/lists/* COPY package.json pnpm-lock.yaml* ./ RUN corepack enable && pnpm install --frozen-lockfile COPY . . RUN pnpm build FROM node:24-bookworm-slim AS runtime WORKDIR /app ENV NODE_ENV=production RUN corepack enable && useradd --create-home --uid 10001 tallynote COPY --from=build /app/package.json /app/pnpm-lock.yaml* ./ COPY --from=build /app/node_modules ./node_modules COPY --from=build /app/dist ./dist COPY --from=build /app/migrations ./migrations COPY --from=build /app/server ./server RUN mkdir -p /data && chown -R tallynote:tallynote /data /app USER tallynote EXPOSE 3000 VOLUME ["/data"] CMD ["node", "dist/server/index.js"]