From e13617c6460812bbadea8827349592e6614e3a2f Mon Sep 17 00:00:00 2001 From: TONresistor <240980241+TONresistor@users.noreply.github.com> Date: Fri, 19 Jun 2026 08:24:00 +0200 Subject: [PATCH] fix(docker): install build toolchain in runtime stage so better-sqlite3 compiles --- Dockerfile | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 23c6c6f2..956a9c3f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -34,11 +34,18 @@ FROM node:20-slim WORKDIR /app -# Copy package files and install production deps only +# Copy package files and install production deps only. +# better-sqlite3 has no usable prebuilt for this image and compiles from source, so the +# build toolchain is installed, used, then purged in the same layer to keep the image slim. COPY package.json package-lock.json ./ -RUN npm pkg delete scripts.prepare \ +RUN apt-get update \ + && apt-get install -y --no-install-recommends python3 make g++ \ + && npm pkg delete scripts.prepare \ && npm ci --omit=dev \ - && npm cache clean --force + && npm cache clean --force \ + && apt-get purge -y python3 make g++ \ + && apt-get autoremove -y \ + && rm -rf /var/lib/apt/lists/* # Copy pre-built native module from build stage COPY --from=build /app/node_modules/better-sqlite3/build/Release/better_sqlite3.node /app/node_modules/better-sqlite3/build/Release/better_sqlite3.node