diff --git a/Dockerfile b/Dockerfile index 59ac66f..0b3fa71 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,6 +2,10 @@ FROM node:22-alpine AS builder WORKDIR /app +# better-sqlite3 native modülünü derleyebilmek için (prebuild indirilemezse +# node-gyp'in Python/make/g++'a ihtiyacı var — Alpine imajında varsayılan yok). +RUN apk add --no-cache python3 make g++ + # Paket dosyalarını kopyala ve bağımlılıkları yükle COPY package*.json ./ RUN npm ci @@ -14,9 +18,13 @@ FROM node:22-alpine AS runner WORKDIR /app -# Sadece production bağımlılıklarını yükle (daha küçük imaj boyutu) +# Sadece production bağımlılıklarını yükle (daha küçük imaj boyutu) — build +# araçları geçici (.build-deps) olarak eklenip npm ci sonrası kaldırılır, +# nihai imaj şişmez ama better-sqlite3 yine de derlenebilir. COPY package*.json ./ -RUN npm ci --omit=dev +RUN apk add --no-cache --virtual .build-deps python3 make g++ \ + && npm ci --omit=dev \ + && apk del .build-deps # Derlenmiş kodları builder aşamasından al COPY --from=builder /app/dist ./dist