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:
- Menstandarkan Lingkungan: Mengatasi masalah “ini bekerja di mesin saya” dengan memastikan bahwa semua sistem yang berbeda memiliki lingkungan kerja yang sama.
- Ketergantungan yang Berdiri Sendiri: Tidak akan ada bentrokan karena ketergantungan akan dienkapsulasi di dalam kontainer.
- Kolaborasi Tweak: Berbagi konfigurasi menggunakan Dockerfile dan docker-compose. file yml untuk definisi dunia, menyederhanakan proses orientasi.
- 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
- Gunakan Gambar Ramping: Gunakan gambar dasar ramping atau alpine untuk mengurangi ukuran gambar
- Gunakan. Dockerignore: Berhenti menambahkan file yang tidak perlu ke dalam gambar
- Gunakan Variabel Lingkungan: Untuk rahasia dan konfigurasi.
- 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