From 6ec5a4106be6aa49f273bf9764ee95a198a16e19 Mon Sep 17 00:00:00 2001 From: LukeGus Date: Sun, 28 Sep 2025 17:20:58 -0500 Subject: [PATCH] Fix docker build --- docker/Dockerfile | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 7c381e67..ab05b844 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,19 +1,16 @@ # Stage 1: Install dependencies and build frontend -FROM node:22-alpine AS deps +FROM node:22-bullseye AS deps WORKDIR /app -RUN apk add --no-cache python3 make g++ +RUN apt-get update && apt-get install -y python3 make g++ && rm -rf /var/lib/apt/lists/* COPY package*.json ./ ENV npm_config_target_platform=linux ENV npm_config_target_arch=x64 -ENV npm_config_target_libc=musl +ENV npm_config_target_libc=glibc RUN npm ci --force --ignore-scripts && \ - if [ "$(uname -m)" = "x86_64" ]; then \ - npm install @rollup/rollup-linux-x64-musl @esbuild/linux-x64 --force; \ - fi && \ npm cache clean --force # Stage 2: Build frontend @@ -22,10 +19,7 @@ WORKDIR /app COPY . . -RUN if [ "$(uname -m)" = "x86_64" ]; then \ - npm install @rollup/rollup-linux-x64-musl @esbuild/linux-x64 --force; \ - fi && \ - npm cache clean --force && \ +RUN npm cache clean --force && \ npm run build # Stage 3: Build backend TypeScript @@ -36,37 +30,38 @@ COPY . . ENV npm_config_target_platform=linux ENV npm_config_target_arch=x64 -ENV npm_config_target_libc=musl +ENV npm_config_target_libc=glibc RUN npm rebuild better-sqlite3 --force RUN npm run build:backend # Stage 4: Production dependencies only -FROM node:22-alpine AS production-deps +FROM node:22-bullseye AS production-deps WORKDIR /app -RUN apk add --no-cache python3 make g++ +RUN apt-get update && apt-get install -y python3 make g++ && rm -rf /var/lib/apt/lists/* COPY package*.json ./ ENV npm_config_target_platform=linux ENV npm_config_target_arch=x64 -ENV npm_config_target_libc=musl +ENV npm_config_target_libc=glibc RUN npm ci --only=production --ignore-scripts --force && \ npm rebuild better-sqlite3 bcryptjs --force && \ npm cache clean --force # Stage 5: Final optimized image -FROM node:22-alpine +FROM node:22-bullseye WORKDIR /app ENV DATA_DIR=/app/data \ PORT=8080 \ NODE_ENV=production -RUN apk add --no-cache nginx gettext su-exec openssl && \ +RUN apt-get update && apt-get install -y nginx gettext-base openssl && \ + rm -rf /var/lib/apt/lists/* && \ mkdir -p /app/data && \ chown -R node:node /app/data