Devops

Cara Deploy Aplikasi dengan Docker dan Docker Compose

Leonardus Reka
Leonardus Reka
9 min read
Bagikan:

Cara Deploy Aplikasi dengan Docker dan Docker Compose

Docker telah merevolusi cara kita men-deploy aplikasi dengan memperkenalkan konsep kontainerisasi. Tutorial ini akan membahas cara men-deploy aplikasi web menggunakan Docker dan Docker Compose.

Pengenalan Docker

Docker adalah platform open source yang memungkinkan developer untuk mengemas aplikasi ke dalam kontainer. Kontainer adalah unit standar perangkat lunak yang mengemas kode dan semua dependensinya sehingga aplikasi berjalan dengan cepat dan andal dari satu lingkungan komputasi ke lingkungan lainnya.

Instalasi Docker

Pertama, Anda perlu menginstal Docker di sistem Anda:

Untuk Ubuntu:

sudo apt update
sudo apt install docker.io
sudo systemctl start docker
sudo systemctl enable docker

Untuk macOS:

Download dan instal Docker Desktop dari website resmi Docker.

Membuat Dockerfile

Dockerfile adalah file teks yang berisi instruksi untuk membangun image Docker:

# Use an official Node.js runtime as a parent image
FROM node:14-alpine

# Set the working directory in the container
WORKDIR /app

# Copy package.json and package-lock.json
COPY package*.json ./

# Install dependencies
RUN npm install

# Copy the rest of the application
COPY . .

# Build the application (for production)
RUN npm run build

# Expose the port the app runs on
EXPOSE 3000

# Command to run the application
CMD ["npm", "start"]

Menggunakan Docker Compose

Docker Compose memungkinkan Anda mengelola multi-container aplikasi:

version: '3'

services:
  web:
    build: .
    ports:
      - "3000:3000"
    depends_on:
      - db
    environment:
      DATABASE_URL: mongodb://db:27017/myapp

  db:
    image: mongo:4.4
    volumes:
      - mongodb_data:/data/db

volumes:
  mongodb_data:

Menjalankan Aplikasi dengan Docker Compose

docker-compose up -d

Best Practices

  1. Gunakan .dockerignore - Abaikan file yang tidak perlu dalam build context
  2. Multi-stage builds - Kurangi ukuran image final
  3. Jangan jalankan sebagai root - Gunakan USER non-root di Dockerfile
  4. Versioning images - Selalu tag image Anda

Kesimpulan

Docker dan Docker Compose menyederhanakan proses deployment dengan menyediakan lingkungan yang konsisten. Dengan kontainerisasi, Anda dapat memastikan bahwa aplikasi Anda berjalan sama di mana saja, menghilangkan masalah "works on my machine".

Leonardus Reka

Leonardus Reka

D3 Teknik Informatika Universitas Sebelas Maret. Passionate about web development, machine learning, and creating useful applications.