Docker Multi-Stage Build: Memangkas Ukuran Image Node.js dari 1.2GB ke 120MB
Dosa Image Container yang Menggelembung
Banyak pemula menyalin seluruh direktori proyek ke dalam Dockerfile, menjalankan npm install, dan langsung menjalankan container. Hasilnya adalah image raksasa berukuran 1.2 Gigabyte yang memuat compiler TypeScript, file tes, dokumentasi, dan library pengembangan lokal yang tidak ada gunanya di server produksi.
Image yang gemuk memperlambat waktu deployment CI/CD dan memperlebar celah kerentanan keamanan sistem operasi (attack surface).
Solusi: Multi-Stage Build
# Stage 1: Build & Compile
FROM node:20-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build && npm prune --production
# Stage 2: Minimal Production Runtime
FROM node:20-alpine AS runner
WORKDIR /app
ENV NODE_ENV=production
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/node_modules ./node_modules
COPY --from=builder /app/package.json ./package.json
USER node
EXPOSE 3000
CMD ["node", "dist/index.js"]
Ukuran image container terpangkas drastis menjadi hanya sekitar 120MB, jauh lebih cepat ditarik (pull) oleh cluster server Kubernetes Anda!
Ditulis oleh Gentha Arya Pratama
Fullstack Developer berdedikasi membangun aplikasi web & mobile modern dengan fokus pada performa, arsitektur bersih, dan user experience.
Bagaimana pendapat Anda tentang artikel ini?
Beri reaksi instan atau bagikan ilmu ini ke rekan sesama developer.
Artikel Terkait
GraphQL Subscriptions + WebSocket: Real-Time Communication dengan Efficient Connection Management
Cybersecurity for IoT: Secure Device Onboarding & Data Encryption Edge
Serverless API Gateway: AWS API Gateway v2 + Lambda + Custom Domain Names
Ingin Membuat Aplikasi Web atau Mobile?
Konsultasikan kebutuhan pembuatan aplikasi Anda—mulai dari sistem enterprise, landing page berkonversi tinggi, hingga aplikasi Android. Pengerjaan cepat, aman, dan bergaransi via Fastwork.
Artikel Lainnya
Cybersecurity for IoT: Secure Device Onboarding & Data Encryption Edge
Mengimplementasi keamanan siber untuk perangkat IoT: onboarding device aman, enkripsi end-to-end, dan edge computing security untuk jaringan IoT.
Serverless API Gateway: AWS API Gateway v2 + Lambda + Custom Domain Names
Membangun serverless API gateway dengan AWS API Gateway v2, Lambda integration, custom domain names, dan CI/CD pipeline untuk deployment API.
Real-Time Analytics with Apache Pulsar: Stream Processing untuk Event-Driven Systems
Implementasi Apache Pulsar untuk stream processing, real-time analytics, dan event streaming pada arsitektur event-driven microservices.
Modern Monitoring Stack: Prometheus + Grafana + Alertmanager untuk Observability
Membangun stack monitoring modern dengan Prometheus metrics collection, Grafana dashboards, dan Alertmanager untuk alerting dan observability.
Security-First Development: GitOps + Terraform + OPA Policy as Code
Implementasi DevSecOps dengan GitOps, Terraform infrastructure, dan Open Policy Agent policy-as-code untuk keamanan otomatis. infrastructure-as-code.