Panduan langkah demi langkah menginstal Docker Desktop pada MacBook (Apple Silicon) untuk environment development yang rapi.
Kunjungi website resmi Docker.com. Pastikan memilih opsi "Download for Mac - Apple Silicon" karena saya menggunakan chip M1/M2/M3 pada MacBook saya.
Setelah unduhan selesai, cari file Docker.dmg di folder
Downloads dan lakukan Double-click untuk
membukanya.
Jendela instalasi akan muncul. Seret (Drag) ikon Docker (si paus biru) ke arah folder Applications. Tunggu proses penyalinan selesai.
Gunakan pintasan keyboard Cmd + Spasi untuk membuka
Spotlight Search, ketik "Docker", lalu tekan Enter
untuk menjalankan aplikasinya.
Jika Docker berhasil dibuka, kamu akan melihat halaman Dashboard kosong dengan status "Engine running" di pojok kiri bawah. Ini tandanya "Dapur" kita sudah siap, tapi belum ada "Masakan" (Container) yang dimasak.
Buat file bernama docker-compose.yml di dalam folder
proyek. File ini berisi konfigurasi lengkap untuk Odoo 17, Database
PostgreSQL, dan PHP Server agar bisa berjalan bersamaan.
services:
# --- 1. Database untuk Odoo (PostgreSQL) ---
db:
image: postgres:15
container_name: odoo_db_17
environment:
- POSTGRES_DB=postgres
- POSTGRES_PASSWORD=odoo
- POSTGRES_USER=odoo
volumes:
- odoo-db-data:/var/lib/postgresql/data
restart: always
# --- 2. Odoo 17 ---
odoo:
image: odoo:17.0
container_name: odoo_app_17
depends_on:
- db
ports:
- "8069:8069" # Akses di localhost:8069
volumes:
- odoo-web-data:/var/lib/odoo
- ./odoo-addons:/mnt/extra-addons
environment:
- HOST=db
- USER=odoo
- PASSWORD=odoo
restart: always
# --- 3. Web Server (PHP 8.2 + Apache) ---
php-web:
image: php:8.2-apache
container_name: php_web_dev
ports:
- "8080:80" # Akses di localhost:8080
volumes:
- ./web-project:/var/www/html
restart: always
# Volume persisten agar data tidak hilang saat restart
volumes:
odoo-web-data:
odoo-db-data:
Catatan: Pastikan struktur spasi/indentasi sesuai karena YAML sangat sensitif terhadap spasi.
Buat folder web-project, lalu di dalamnya buat file
index.php. Masukkan kode berikut untuk mengetes apakah
server PHP berfungsi dan menampilkan versi PHP yang terinstal.
<!DOCTYPE html>
<html>
<head>
<title>PembelajarBelajar Dev</title>
<style>
body { font-family: sans-serif; text-align: center; padding-top: 50px; background: #f4f6f8; }
h1 { color: #0db7ed; }
.card { background: white; padding: 20px; border-radius: 10px; display: inline-block; box-shadow: 0 4px 6px rgba(0,0,0,0.1); }
</style>
</head>
<body>
<div class="card">
<h1>Halo, Naufal!</h1>
<p>PHP Server berjalan di Docker.</p>
<p>Versi PHP: <?php echo phpversion(); ?></p>
<hr>
<p><i>Edit file ini di folder 'web-project' dan refresh browser untuk melihat hasil live.</i></p>
</div>
</body>
</html>
Buka terminal di folder proyek, lalu ketik perintah docker compose up -d. Docker akan mulai menarik (pulling) bahan-bahan (images) dari internet.
Buka kembali Docker Desktop. Sekarang kamu akan melihat grup docker (atau nama foldermu) yang berisi 3 container: php-web, db, dan odoo. Pastikan statusnya Running dengan penggunaan CPU/Memory yang terlihat.
Buka browser dan akses http://localhost:8069. Halaman ini membuktikan bahwa container Odoo berhasil terhubung dengan container PostgreSQL.
Akses http://localhost:8080 untuk melihat website PHP sederhana kita. Karena kita menggunakan fitur Volumes, setiap perubahan file di komputer akan langsung tampil di sini.