penambahan docker dan lain lain untuk penyesuaian docker
This commit is contained in:
No files matched your search
@@ -0,0 +1,101 @@
|
||||
# Panduan Deployment Docker - web-antrean
|
||||
|
||||
Panduan ini berisi langkah-langkah untuk menjalankan aplikasi `web-antrean` (Nuxt 3) menggunakan Docker & Docker Compose.
|
||||
|
||||
---
|
||||
|
||||
## 📦 Prasyarat (Prerequisites)
|
||||
|
||||
Sebelum memulai, pastikan Anda telah menginstal:
|
||||
- **Docker Desktop** (atau Docker Engine di Linux)
|
||||
- **Docker Compose** (biasanya otomatis terinstal dengan Docker Desktop)
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Quick Start (Mulai Cepat)
|
||||
|
||||
### 1. Siapkan File `.env`
|
||||
Pastikan file `.env` sudah ada di root folder `web-antrean` dengan konfigurasi yang benar. Anda bisa menyalin dari template yang disediakan:
|
||||
```bash
|
||||
cp .env.docker.example .env
|
||||
```
|
||||
> [!IMPORTANT]
|
||||
> Pastikan variabel `HOST` diatur ke `0.0.0.0` agar aplikasi dapat menerima request dari luar container Docker.
|
||||
> Sesuaikan `AUTH_ORIGIN` dan `POST_LOGOUT_REDIRECT_URI` dengan alamat/domain server Anda (misal: `http://10.10.150.175:3000`).
|
||||
|
||||
### 2. Bangun dan Jalankan Container
|
||||
Jalankan perintah berikut di terminal untuk melakukan build image sekaligus menjalankan container di background:
|
||||
```bash
|
||||
docker-compose up -d --build
|
||||
```
|
||||
|
||||
### 3. Akses Aplikasi
|
||||
Setelah container berhasil berjalan, aplikasi dapat diakses di browser melalui:
|
||||
- **http://localhost:3000** (atau IP server Anda, misal: **http://10.10.150.175:3000**)
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Perintah Docker yang Sering Digunakan (Useful Commands)
|
||||
|
||||
### Menjalankan Container (Jalankan di background)
|
||||
```bash
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
### Mematikan Container
|
||||
```bash
|
||||
docker-compose down
|
||||
```
|
||||
|
||||
### Membangun Ulang & Menjalankan Ulang (Jika ada perubahan kode)
|
||||
```bash
|
||||
docker-compose up -d --build
|
||||
```
|
||||
|
||||
### Melihat Log Aplikasi secara Real-time
|
||||
```bash
|
||||
docker-compose logs -f web-antrean
|
||||
```
|
||||
|
||||
### Masuk ke Terminal di Dalam Container
|
||||
```bash
|
||||
docker exec -it web-antrean sh
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 💾 Persistensi Database (SQLite)
|
||||
|
||||
Aplikasi `web-antrean` menggunakan `better-sqlite3` untuk menyimpan data sinkronisasi pengguna di `/app/data/users.db`.
|
||||
|
||||
Agar data ini tidak hilang saat container dihapus atau dibangun ulang, kami menggunakan **Volume Mounting** di `docker-compose.yml`:
|
||||
```yaml
|
||||
volumes:
|
||||
- ./data:/app/data
|
||||
```
|
||||
Ini akan otomatis memetakan folder local `./data` di host server Anda ke folder `/app/data` di dalam container. File database Anda akan tersimpan dengan aman di folder local `./data`.
|
||||
|
||||
---
|
||||
|
||||
## 🔍 Troubleshooting (Penyelesaian Masalah)
|
||||
|
||||
### 1. Masalah dengan Native Module compilation (`better-sqlite3`)
|
||||
Jika image gagal dibangun karena error kompilasi C/C++, Dockerfile kami telah dikonfigurasi menggunakan **multi-stage build** dengan base image `node:20-alpine` dan menginstal package compiler (`make`, `g++`, `gcc`, `python3`) di builder stage. Ini menjamin proses build aman dan hasil image final tetap berukuran kecil (~150MB - 200MB).
|
||||
|
||||
### 2. Cek Status Container dan Health Check
|
||||
Container ini dilengkapi dengan health check otomatis. Anda bisa mengecek statusnya dengan:
|
||||
```bash
|
||||
docker ps
|
||||
```
|
||||
Jika statusnya `Up (healthy)`, berarti server Nuxt Anda telah siap dan dapat diakses.
|
||||
|
||||
### 3. Hapus Cache Docker jika Mengalami Error Aneh
|
||||
```bash
|
||||
docker-compose down --rmi all --volumes
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🛡️ Catatan Keamanan
|
||||
- Jangan pernah meng-commit file `.env` ke Git repository.
|
||||
- Selalu gunakan `NUXT_AUTH_SECRET` yang aman dan unik untuk setiap environment (Development/Production).
|
||||
Reference in New Issue
Block a user