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:
+10
-2
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user