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
|
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
|
# Paket dosyalarını kopyala ve bağımlılıkları yükle
|
||||||
COPY package*.json ./
|
COPY package*.json ./
|
||||||
RUN npm ci
|
RUN npm ci
|
||||||
@@ -14,9 +18,13 @@ FROM node:22-alpine AS runner
|
|||||||
|
|
||||||
WORKDIR /app
|
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 ./
|
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
|
# Derlenmiş kodları builder aşamasından al
|
||||||
COPY --from=builder /app/dist ./dist
|
COPY --from=builder /app/dist ./dist
|
||||||
|
|||||||
Reference in New Issue
Block a user