docker: force bcrypt build-from-source and enable pre/post scripts across stages
This commit is contained in:
23
Dockerfile
23
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
|
||||
|
Reference in New Issue
Block a user