Membuat Docker Image dengan Dockerfile
Dockerfile adalah file teks berisi instruksi step-by-step untuk membuat Docker image. Setiap instruksi membuat layer baru di image.
Contoh Dockerfile untuk Node.js
# Base image
FROM node:20-alpine
# Set working directory di dalam container
WORKDIR /app
# Copy package files dulu (untuk cache layer)
COPY package*.json ./
# Install dependencies
RUN npm ci --production
# Copy source code
COPY . .
# Expose port
EXPOSE 3000
# Command saat container start
CMD ["node", "server.js"]
Instruksi Dockerfile Penting
FROM— base image yang digunakanWORKDIR— set direktori kerja di containerCOPY— copy file dari host ke containerRUN— jalankan command saat build (install, compile)EXPOSE— dokumentasi port yang digunakanCMD— command default saat container startENV— set environment variable
Build & Run
# Build image
docker build -t my-app:latest .
# Build dengan build argument
docker build --build-arg NODE_ENV=production -t my-app:prod .
# Run container dari image
docker run -d -p 3000:3000 my-app:latest
.dockerignore
node_modules
.git
.env
*.log
Dockerfile
.dockerignore
Multi-stage Build
# Stage 1: Build
FROM node:20 AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build
# Stage 2: Production
FROM node:20-alpine
WORKDIR /app
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/node_modules ./node_modules
CMD ["node", "dist/server.js"]