Pendahuluan
Containerization telah menjadi standar industri di tahun 2026. Docker dan Kubernetes tidak lagi opsional — mereka adalah fondasi infrastruktur modern.
Dockerfile Multi-Stage Optimal
# Stage 1: Build
FROM golang:1.23-alpine AS builder
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN CGO_ENABLED=0 GOOS=linux go build -o main .
# Stage 2: Runtime minimal
FROM gcr.io/distroless/base-debian12:nonroot
COPY --from=builder /app/main /main
EXPOSE 8080
USER nonroot:nonroot
ENTRYPOINT ["/main"]
Hasil: Image size dari 1.2GB → 12MB!
Docker Compose untuk Development
services:
app:
build: .
ports:
- "3000:3000"
environment:
- NODE_ENV=development
volumes:
- .:/app
depends_on:
db:
condition: service_healthy
db:
image: postgres:16-alpine
volumes:
- pgdata:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready"]
interval: 5s
Best Practice untuk Developer Indonesia
Resource Management
VPS di Indonesia memiliki harga kompetitif. Optimasi resource sangat penting:CI/CD Pipeline
- name: Build & Push
run: |
docker build -t ghcr.io/ringga-dev/app:${{ github.sha }} .
docker push ghcr.io/ringga-dev/app:${{ github.sha }}
- name: Deploy
run: |
kubectl set image deployment/app \
app=ghcr.io/ringga-dev/app:${{ github.sha }}
Kesimpulan
Docker + Kubernetes bukan lagi untuk perusahaan besar saja. Developer Indonesia bisa mengadopsi container orchestration untuk berbagai skala proyek.