Instalasi Docker

Panduan langkah demi langkah menginstal Docker Desktop pada MacBook (Apple Silicon) untuk environment development yang rapi.

1
Download Installer

Kunjungi website resmi Docker.com. Pastikan memilih opsi "Download for Mac - Apple Silicon" karena saya menggunakan chip M1/M2/M3 pada MacBook saya.

Screenshot Website Docker (Klik untuk zoom) Halaman Download Docker
2
Jalankan File .dmg

Setelah unduhan selesai, cari file Docker.dmg di folder Downloads dan lakukan Double-click untuk membukanya.

File DMG Docker
3
Instalasi ke Applications

Jendela instalasi akan muncul. Seret (Drag) ikon Docker (si paus biru) ke arah folder Applications. Tunggu proses penyalinan selesai.

Drag ke Applications
4
Jalankan via Spotlight Search

Gunakan pintasan keyboard Cmd + Spasi untuk membuka Spotlight Search, ketik "Docker", lalu tekan Enter untuk menjalankan aplikasinya.

Spotlight Search Docker
5
Instalasi Berhasil (Dashboard)

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.

Dashboard Docker Kosong
6
Menyiapkan Resep (Docker Compose)

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.

7
Membuat File Percobaan PHP

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>
8
Eksekusi: Docker Compose Up

Buka terminal di folder proyek, lalu ketik perintah docker compose up -d. Docker akan mulai menarik (pulling) bahan-bahan (images) dari internet.

Terminal Docker Pulling
9
Verifikasi: Container Aktif

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.

Dashboard Docker Full Running
10
Hasil: Odoo 17 Berjalan

Buka browser dan akses http://localhost:8069. Halaman ini membuktikan bahwa container Odoo berhasil terhubung dengan container PostgreSQL.

Odoo 17 Running
11
Hasil: PHP Server (Live Reload)

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.

PHP Server Running