Docker
Ringkasan
Sutomo menggunakan tiga file Docker Compose dan dua Dockerfile untuk environment berbeda.
| File | Tujuan |
|---|---|
Dockerfile | Image produksi (ringan, tanpa handbook build) |
Dockerfile.dev | Image development (include Vitepress handbook) |
docker-compose.yml | Service produksi |
docker-compose.dev.yml | Override development (tambah DB, Redis, port) |
docker-compose.test.yml | Environment CI test |
Arsitektur Container
| Container | Image | Fungsi |
|---|---|---|
sutomo-app | FrankenPHP + Octane | HTTP server |
sutomo-queue | Sama dengan app | Queue worker |
sutomo-db | PostgreSQL 17 | Database (dev only) |
sutomo-redis | Redis 7-alpine | Cache + Queue (dev only) |
sutomo-prometheus | Prometheus v3 | Metrik |
sutomo-loki | Loki v3 | Log aggregation |
sutomo-grafana | Grafana 13 | Dashboard metrik |
Dev vs Prod
| Aspek | Dev | Prod |
|---|---|---|
| Dockerfile | Dockerfile.dev | Dockerfile |
| Workers | 2 | 8 |
| DB + Redis | Included | External |
| File mounts | Ya (live reload) | Tidak |
Makefile Commands
bash
make build # Build & start (dev)
make build prod # Build & start (production)
make up # Start containers
make down # Stop containers
make migrate-seed # migrate:fresh --seed
make test # Run tests
make clean # Hapus containers + volumesFile Penting
| File | Tujuan |
|---|---|
Dockerfile | Image produksi |
Dockerfile.dev | Image development |
docker-compose.yml | Service produksi |
docker-compose.dev.yml | Override dev |
Makefile | Shortcut command |