Files
lagos-back/Dockerfile
T
Mustafa Yildiz 6b92f75e4b 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.
2026-08-20 13:22:14 +03:00

41 lines
1.1 KiB
Docker
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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
# Kaynak kodları kopyala ve derle
COPY . .
RUN npm run build
FROM node:22-alpine AS runner
WORKDIR /app
# 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 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
# Uygulama portunu belirt
EXPOSE 3001
# Gerekli ortam değişkenleri (Coolify üzerinden de ezilebilir)
ENV PORT=3001
ENV NODE_ENV=production
# Uygulamayı başlat
CMD ["npm", "start"]