Setup ini menjalankan aplikasi PHP (Laravel/CodeIgniter) di kontainer app dan database MySQL, plus phpMyAdmin.
- PHP 8.4 (FPM + Apache) dari image
shinsenter/php:8.4-fpm-apache-alpine. - Alpine Linux base image.
- Node.js + npm (versi mengikuti repository Alpine).
pnpm(global).fishshell.- MySQL 8.4.5 (service terpisah di docker-compose).
Catatan: Composer sudah tersedia. Cek dengan composer -V.
app: 80 (HTTP), 443 (HTTPS), 5173 (Vite dev server)mysql: 3306phpmyadmin: 8080
- Taruh
Dockerfiledandocker-compose.ymldi root project Laravel/CodeIgniter. - Pastikan source code project ada di folder yang sama (akan di-mount ke
/var/www/html). - Jalankan container:
docker compose up -d
- Hentikan dan hapus container:
docker compose down
Masuk ke container dan gunakan fish:
docker compose exec app fishPilih salah satu (npm atau pnpm):
# npm
npm install
npm run dev
# pnpm
pnpm install
pnpm run devJika Vite berjalan, akses di http://localhost:5173.
php -v
node -v
npm -v
pnpm -v
composer -V
mysql --version- Working dir:
/var/www/html - Document root (Apache):
/var/www/html/public - Volume cache:
~/.composer->/root/.composer~/.npm->/root/.npm~/.local/share/pnpm->/root/.local/share/pnpm
- MySQL 8.4.5, password root kosong (hanya untuk dev).
- phpMyAdmin tersedia di
http://localhost:8080.
Contoh konfigurasi .env (Laravel/CodeIgniter):
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=app
DB_USERNAME=root
DB_PASSWORD=Jika ada masalah write permission, samakan UID/GID host dengan PUID/PGID atau set ownership di container:
chown -R 1000:1000 /var/www/html- Jika mau versi Node tertentu (mis. Node 24, npm 11), update Dockerfile untuk install versi spesifik.
- Password MySQL kosong hanya untuk development, ganti untuk production.