fix: install python3/make/g++ in Docker build for better-sqlite3

better-sqlite3'ün native modülü Alpine tabanlı imajda derlenemiyordu
(node-gyp Python/make/g++ bulamadığı için npm ci başarısız oluyordu) —
bu, Faz 4'te better-sqlite3 eklendiğinden beri (7468486) production
deploy'unu kırıyordu. Builder aşamasına kalıcı, runner aşamasına
geçici (.build-deps, npm ci sonrası kaldırılıyor) build araçları
eklendi.
This commit is contained in:
Mustafa Yildiz
2026-08-20 13:22:14 +03:00
parent 2744899f2a
commit 6b92f75e4b
+10 -2
View File
@@ -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