From 460671e7533f9e92a4b394cb64a037183fb14ba2 Mon Sep 17 00:00:00 2001 From: Fork Less Date: Wed, 24 Jun 2026 18:32:35 +0200 Subject: [PATCH] perf: switch to node:20-alpine base images --- Dockerfile | 14 +++++++------- Dockerfile.canvas | 16 ++++++++-------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/Dockerfile b/Dockerfile index bce8518..1cec38a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,9 +2,9 @@ # Builds the MCP server with SQLite persistence # Stage 1: Build backend (TypeScript compilation + native modules) -FROM node:20-slim AS builder +FROM node:20-alpine AS builder -RUN apt-get update && apt-get install -y python3 make g++ && rm -rf /var/lib/apt/lists/* +RUN apk add --no-cache python3 make g++ WORKDIR /app @@ -16,12 +16,12 @@ COPY tsconfig.json ./ RUN npm run build:server # Stage 2: Production MCP Server -FROM node:20-slim AS production +FROM node:20-alpine AS production -RUN apt-get update && apt-get install -y python3 make g++ && rm -rf /var/lib/apt/lists/* +RUN apk add --no-cache python3 make g++ -RUN addgroup --system --gid 1001 nodejs && \ - adduser --system --uid 1001 --gid 1001 nodejs +RUN addgroup -S -g 1001 nodejs && \ + adduser -S -u 1001 -G nodejs nodejs WORKDIR /app @@ -29,7 +29,7 @@ COPY package*.json ./ RUN --mount=type=cache,target=/root/.npm npm ci --omit=dev # Remove build tools after native modules are compiled -RUN apt-get purge -y python3 make g++ && apt-get autoremove -y +RUN apk del python3 make g++ COPY --from=builder /app/dist ./dist diff --git a/Dockerfile.canvas b/Dockerfile.canvas index 990db10..a7d8875 100644 --- a/Dockerfile.canvas +++ b/Dockerfile.canvas @@ -2,7 +2,7 @@ # Provides the web interface, REST API, and SQLite persistence # Stage 1: Build frontend -FROM node:20-slim AS frontend-builder +FROM node:20-alpine AS frontend-builder WORKDIR /app @@ -14,9 +14,9 @@ COPY vite.config.js ./ RUN npm run build:frontend # Stage 2: Build backend (TypeScript compilation + native modules) -FROM node:20-slim AS backend-builder +FROM node:20-alpine AS backend-builder -RUN apt-get update && apt-get install -y python3 make g++ && rm -rf /var/lib/apt/lists/* +RUN apk add --no-cache python3 make g++ WORKDIR /app @@ -28,12 +28,12 @@ COPY tsconfig.json ./ RUN npm run build:server # Stage 3: Production Canvas Server -FROM node:20-slim AS production +FROM node:20-alpine AS production -RUN apt-get update && apt-get install -y python3 make g++ && rm -rf /var/lib/apt/lists/* +RUN apk add --no-cache python3 make g++ -RUN addgroup --system --gid 1001 nodejs && \ - adduser --system --uid 1001 --gid 1001 nodejs +RUN addgroup -S -g 1001 nodejs && \ + adduser -S -u 1001 -G nodejs nodejs WORKDIR /app @@ -41,7 +41,7 @@ COPY package*.json ./ RUN --mount=type=cache,target=/root/.npm npm ci --omit=dev # Remove build tools after native modules are compiled -RUN apt-get purge -y python3 make g++ && apt-get autoremove -y +RUN apk del python3 make g++ COPY --from=backend-builder /app/dist ./dist COPY --from=frontend-builder /app/dist/frontend ./dist/frontend