Blogger Jateng

Menyiapkan Lingkungan Pengembangan Lokal dengan Docker

Pengembangan perangkat lunak modern sering kali membutuhkan cara yang terstandardisasi dan efisien untuk mengelola ketergantungan dan konfigurasi. Docker, sebuah platform kontainerisasi yang populer, menyediakan solusi dengan menciptakan lingkungan terisolasi yang memastikan konsistensi di seluruh pengembangan, pengujian, dan produksi. Berikut ini adalah panduan langkah demi langkah untuk menyiapkan lingkungan pengembangan lokal menggunakan Docker.

Mengapa Menggunakan Docker untuk Pengembangan Lokal?

Docker memungkinkan pengembang untuk:

  1. Menstandarkan Lingkungan: Mengatasi masalah “ini bekerja di mesin saya” dengan memastikan bahwa semua sistem yang berbeda memiliki lingkungan kerja yang sama.
  2. Ketergantungan yang Berdiri Sendiri: Tidak akan ada bentrokan karena ketergantungan akan dienkapsulasi di dalam kontainer.
  3. Kolaborasi Tweak: Berbagi konfigurasi menggunakan Dockerfile dan docker-compose. file yml untuk definisi dunia, menyederhanakan proses orientasi.
  4. Scale Out: Menjalankan lingkungan seperti produksi secara lokal.
sumber: ravisah.in

Prasyarat

Sebelum memulai, pastikan hal-hal berikut ini:

  • Menginstal Docker Desktop (tersedia untuk Windows, macOS, dan Linux).
  • Menguasai baris perintah dan pengetahuan dasar tentang konsep Docker (citra, kontainer, volume, dan jaringan).

Langkah 1: Membuat Direktori Proyek

Pertama-tama, siapkan direktori untuk proyek Anda. Semua berkas konfigurasi dan kode aplikasi Anda akan berada di direktori ini.

mkdir my-docker-project

cd my-docker-project

Langkah 2: Menulis Dockerfile

Dockerfile menentukan pengaturan lingkungan aplikasi Anda. Berikut ini contoh tampilannya untuk aplikasi Python:

# Use an official Python runtime as a parent image

FROM python:3.9-slim


# Set the working directory in the container

WORKDIR /app


# Copy the current directory contents into the container at /app

COPY . /app


# Install any needed packages specified in requirements.txt

RUN pip install --no-cache-dir -r requirements.txt


# Make port 5000 available to the world outside this container

EXPOSE 5000


# Define the command to run the application

CMD ["python", "app.py"]

Langkah 3: Menambahkan berkas docker-compose.yml

Docker Compose membuat hidup lebih mudah untuk aplikasi multi-kontainer. Buat berkas docker-compose.yml untuk mendefinisikan layanan, jaringan, dan volume.

Misalnya, aplikasi Python dengan basis data PostgreSQL:

version: '3.8'

services:

  web:

    build: .

    ports:

      - "5000:5000"

    volumes:

      - .:/app

    environment:

      - FLASK_ENV=development


  db:

    image: postgres:13

    environment:

      POSTGRES_USER: user

      POSTGRES_PASSWORD: password

      POSTGRES_DB: mydatabase

    volumes:

      - db_data:/var/lib/postgresql/data


volumes:

  db_data:

Langkah 4: Membangun dan Menjalankan Kontainer

Jalankan perintah berikut ini untuk membangun dan menjalankan kontainer Anda: 

docker-compose up --build

Perintah ini membangun layanan web dari berkas Docker dan memulai layanan web dan db. Docker akan mengunduh citra yang dibutuhkan jika belum tersedia secara lokal.

Langkah 5: Verifikasi Pengaturan

Ketika Anda meluncurkan aplikasi dengan membuka http://localhost:5000 di browser web Anda. Periksa log untuk memastikan semua beroperasi dengan benar:

docker-compose logs

Langkah 6: Gunakan Volume untuk Mempertahankan Data

Docker Compose menggunakan volume untuk mempertahankan data basis data Anda agar tetap tersedia di seluruh pengaktifan ulang kontainer. db_data adalah volume bernama yang menyimpan data PostgreSQL dalam contoh di atas. 

Langkah 7: Debug dan Lakukan Pengulangan

  • Gunakan docker-compose exec untuk menjalankan perintah dalam kontainer yang sedang berjalan:

docker-compose exec web bash

  • Membangun ulang kontainer setelah memodifikasi Dockerfile:

docker-compose up --build

Praktik Terbaik

  1. Gunakan Gambar Ramping: Gunakan gambar dasar ramping atau alpine untuk mengurangi ukuran gambar
  2. Gunakan. Dockerignore: Berhenti menambahkan file yang tidak perlu ke dalam gambar
  3. Gunakan Variabel Lingkungan: Untuk rahasia dan konfigurasi.
  4. Bersihkan Secara Teratur: Hapus wadah dan citra yang tidak digunakan untuk mengosongkan ruang disk: 

 docker system prune -a

Kesimpulan

Docker menyederhanakan pengembangan lokal dengan menyediakan lingkungan yang terisolasi dan dapat direproduksi. Dengan Docker dan Docker Compose, Anda dapat menyederhanakan alur kerja Anda, meminimalkan masalah kompatibilitas, dan merefleksikan lingkungan produksi secara efektif. Dengan mengikuti langkah-langkah ini, Anda akan berada di jalur yang tepat untuk memanfaatkan Docker untuk pengembangan yang efisien dan dapat diskalakan. 

Kembali ke>>>> Menggunakan Docker untuk Pengembangan Web: Panduan untuk Pemula