Belajar Docker Dockerfile Dan Docker Compose

| | Docker
Belajar Docker Dockerfile Dan Docker Compose

Momen ketika Docker benar-benar terasa berguna bagi saya adalah saat sebuah project butuh aplikasi + database + cache sekaligus — dengan Docker Compose, semuanya berjalan dengan satu perintah. Ada dua fondasi yang perlu dikuasai: Dockerfile untuk mendefinisikan aplikasi, dan Docker Compose untuk merangkai banyak service. Keduanya kita bahas di artikel ini.

1. Dockerfile

FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
EXPOSE 5000
CMD ["python", "app.py"]

Build: docker build -t myapp .

2. Multi-Stage Build

# Stage 1: Build
FROM node:18 AS builder
WORKDIR /app
COPY package*.json .
RUN npm ci
COPY . .
RUN npm run build

# Stage 2: Production
FROM nginx:alpine
COPY --from=builder /app/dist /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

Hasil: image kecil karena hanya berisi file statis.

3. Docker Compose

# docker-compose.yml
version: '3.8'
services:
  web:
    build: .
    ports:
      - "5000:5000"
    depends_on:
      - db
  db:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: myapp
    volumes:
      - db_data:/var/lib/mysql

volumes:
  db_data:

Jalankan: docker compose up -d

Kesimpulan

  • Dockerfile — instruksi build image
  • Multi-stage — pisahkan build dan production
  • Docker Compose — orkestrasi multi-container
  • docker compose up -d — jalankan semua service

Sigit Nurhanafi avatar
Full-stack developer & technical writer. Berpengalaman di PHP, Laravel, NodeJS, MySQL, dan Python. Aktif menulis tutorial pemrograman dan maintaining open-source projects di PemburuKode sejak 2021.