diff --git a/Dockerfile b/Dockerfile index 7c447f0..b7f6e15 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,11 +4,16 @@ FROM node:22-alpine AS builder RUN npm install -g pnpm \ && apk add --no-cache python3 make g++ libc6-compat +ENV npm_config_build_from_source=1 \ + npm_config_python=python3 +RUN pnpm config set enable-pre-post-scripts true + WORKDIR /app # Install all deps for building server COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./ -RUN pnpm install --frozen-lockfile --ignore-scripts=false +RUN pnpm install --frozen-lockfile --ignore-scripts=false --enable-pre-post-scripts \ + && pnpm rebuild bcrypt --build-from-source || true # Copy only server sources and tsconfig for server build COPY src/server ./src/server @@ -24,6 +29,10 @@ FROM node:22-alpine AS production RUN npm install -g pnpm ts-node \ && apk add --no-cache su-exec curl python3 make g++ libc6-compat +ENV npm_config_build_from_source=1 \ + npm_config_python=python3 +RUN pnpm config set enable-pre-post-scripts true + # Set working directory WORKDIR /app @@ -31,8 +40,8 @@ WORKDIR /app COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./ # Install production dependencies only -RUN pnpm install --frozen-lockfile --prod --ignore-scripts=false \ - && pnpm rebuild bcrypt || true +RUN pnpm install --frozen-lockfile --prod --ignore-scripts=false --enable-pre-post-scripts \ + && pnpm rebuild bcrypt --build-from-source || true # Copy prebuilt application artifacts from repository (no TS build in image) COPY dist ./dist @@ -72,11 +81,15 @@ FROM node:22-alpine AS production-prebuilt RUN npm install -g pnpm ts-node \ && apk add --no-cache su-exec curl python3 make g++ libc6-compat + +ENV npm_config_build_from_source=1 \ + npm_config_python=python3 +RUN pnpm config set enable-pre-post-scripts true WORKDIR /app COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./ -RUN pnpm install --frozen-lockfile --prod --ignore-scripts=false \ - && pnpm rebuild bcrypt || true +RUN pnpm install --frozen-lockfile --prod --ignore-scripts=false --enable-pre-post-scripts \ + && pnpm rebuild bcrypt --build-from-source || true # Copy prebuilt artifacts from repository COPY dist ./dist