Adjust compose ports for Coolify deployment
This commit is contained in:
+26
-6
@@ -7,6 +7,7 @@ File Docker sudah disiapkan, tetapi belum dijalankan.
|
|||||||
```text
|
```text
|
||||||
Dockerfile
|
Dockerfile
|
||||||
docker-compose.yml
|
docker-compose.yml
|
||||||
|
docker-compose.local.yml
|
||||||
.env.example
|
.env.example
|
||||||
.dockerignore
|
.dockerignore
|
||||||
docker/mysql-init/99-grants.sql
|
docker/mysql-init/99-grants.sql
|
||||||
@@ -20,13 +21,24 @@ Membuat image aplikasi PHP Apache. File ini memasang extension PHP yang dibutuhk
|
|||||||
|
|
||||||
`docker-compose.yml`
|
`docker-compose.yml`
|
||||||
|
|
||||||
Mengatur dua service:
|
Mengatur dua service untuk deploy:
|
||||||
|
|
||||||
```text
|
```text
|
||||||
app = Apache + PHP + semua file project
|
app = Apache + PHP + semua file project
|
||||||
db = MySQL 8.0
|
db = MySQL 8.0
|
||||||
```
|
```
|
||||||
|
|
||||||
|
File ini tidak membuka port host secara langsung supaya aman dipakai di server/Coolify dan tidak bentrok dengan aplikasi lain.
|
||||||
|
|
||||||
|
`docker-compose.local.yml`
|
||||||
|
|
||||||
|
File tambahan khusus saat menjalankan di laptop. File ini membuka:
|
||||||
|
|
||||||
|
```text
|
||||||
|
APP_PORT=8080 -> app port 80
|
||||||
|
DB_PORT=3307 -> db port 3306
|
||||||
|
```
|
||||||
|
|
||||||
`.env.example`
|
`.env.example`
|
||||||
|
|
||||||
Template konfigurasi port, username, password, dan nama database. File ini boleh masuk Git karena tidak berisi password production.
|
Template konfigurasi port, username, password, dan nama database. File ini boleh masuk Git karena tidak berisi password production.
|
||||||
@@ -67,7 +79,7 @@ MYSQL_ROOT_PASSWORD=root_password
|
|||||||
3. Build dan jalankan container:
|
3. Build dan jalankan container:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker compose up -d --build
|
docker compose -f docker-compose.yml -f docker-compose.local.yml up -d --build
|
||||||
```
|
```
|
||||||
|
|
||||||
4. Buka aplikasi:
|
4. Buka aplikasi:
|
||||||
@@ -82,23 +94,29 @@ http://localhost:8080
|
|||||||
docker compose ps
|
docker compose ps
|
||||||
```
|
```
|
||||||
|
|
||||||
|
atau jika ingin melihat compose lokal:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker compose -f docker-compose.yml -f docker-compose.local.yml ps
|
||||||
|
```
|
||||||
|
|
||||||
6. Lihat log jika ada error:
|
6. Lihat log jika ada error:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker compose logs -f
|
docker compose -f docker-compose.yml -f docker-compose.local.yml logs -f
|
||||||
```
|
```
|
||||||
|
|
||||||
7. Matikan container:
|
7. Matikan container:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker compose down
|
docker compose -f docker-compose.yml -f docker-compose.local.yml down
|
||||||
```
|
```
|
||||||
|
|
||||||
8. Reset database Docker dari awal:
|
8. Reset database Docker dari awal:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker compose down -v
|
docker compose -f docker-compose.yml -f docker-compose.local.yml down -v
|
||||||
docker compose up -d --build
|
docker compose -f docker-compose.yml -f docker-compose.local.yml up -d --build
|
||||||
```
|
```
|
||||||
|
|
||||||
## Catatan Penting
|
## Catatan Penting
|
||||||
@@ -110,3 +128,5 @@ docker/mysql-init/99-grants.sql
|
|||||||
```
|
```
|
||||||
|
|
||||||
Untuk production, ganti semua password default di `.env`.
|
Untuk production, ganti semua password default di `.env`.
|
||||||
|
|
||||||
|
Saat deploy di Coolify, cukup gunakan `docker-compose.yml`. Jangan publish port `8080` dari compose utama karena port itu bisa sudah dipakai aplikasi lain di server.
|
||||||
|
|||||||
@@ -24,7 +24,8 @@ Landingpage/
|
|||||||
| |-- assets/
|
| |-- assets/
|
||||||
| `-- sql/
|
| `-- sql/
|
||||||
|-- Dockerfile # Persiapan Docker, belum perlu dijalankan
|
|-- Dockerfile # Persiapan Docker, belum perlu dijalankan
|
||||||
|-- docker-compose.yml # Persiapan service app + database
|
|-- docker-compose.yml # Service app + database untuk deploy
|
||||||
|
|-- docker-compose.local.yml # Override port untuk menjalankan lokal
|
||||||
|-- .env.example # Contoh konfigurasi environment
|
|-- .env.example # Contoh konfigurasi environment
|
||||||
|-- .dockerignore
|
|-- .dockerignore
|
||||||
|-- .gitignore
|
|-- .gitignore
|
||||||
@@ -105,12 +106,20 @@ Password: admin123
|
|||||||
|
|
||||||
## Docker
|
## Docker
|
||||||
|
|
||||||
File Docker sudah disiapkan untuk dipelajari, tetapi belum dijalankan. Baca:
|
File Docker sudah disiapkan untuk lokal dan deploy. Baca:
|
||||||
|
|
||||||
```text
|
```text
|
||||||
DOCKER_STEPS.md
|
DOCKER_STEPS.md
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Untuk menjalankan lokal dengan akses `http://localhost:8080`, gunakan:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker compose -f docker-compose.yml -f docker-compose.local.yml up -d --build
|
||||||
|
```
|
||||||
|
|
||||||
|
Untuk deploy di Coolify, gunakan `docker-compose.yml` saja agar port host tidak bentrok dengan aplikasi lain di server.
|
||||||
|
|
||||||
## Catatan Git
|
## Catatan Git
|
||||||
|
|
||||||
File yang tidak perlu masuk Git sudah dicatat di `.gitignore`, terutama `.env`, upload, log, `vendor`, dan `node_modules`.
|
File yang tidak perlu masuk Git sudah dicatat di `.gitignore`, terutama `.env`, upload, log, `vendor`, dan `node_modules`.
|
||||||
|
|||||||
@@ -0,0 +1,8 @@
|
|||||||
|
services:
|
||||||
|
app:
|
||||||
|
ports:
|
||||||
|
- "${APP_PORT:-8080}:80"
|
||||||
|
|
||||||
|
db:
|
||||||
|
ports:
|
||||||
|
- "${DB_PORT:-3307}:3306"
|
||||||
+2
-4
@@ -3,8 +3,8 @@ services:
|
|||||||
build: .
|
build: .
|
||||||
container_name: webgis-portal-app
|
container_name: webgis-portal-app
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
ports:
|
expose:
|
||||||
- "${APP_PORT:-8080}:80"
|
- "80"
|
||||||
environment:
|
environment:
|
||||||
DB_HOST: ${DB_HOST:-db}
|
DB_HOST: ${DB_HOST:-db}
|
||||||
DB_DATABASE: ${DB_DATABASE:-webgis_miskin}
|
DB_DATABASE: ${DB_DATABASE:-webgis_miskin}
|
||||||
@@ -30,8 +30,6 @@ services:
|
|||||||
MYSQL_DATABASE: ${DB_DATABASE:-webgis_miskin}
|
MYSQL_DATABASE: ${DB_DATABASE:-webgis_miskin}
|
||||||
MYSQL_USER: ${DB_USERNAME:-webgis_user}
|
MYSQL_USER: ${DB_USERNAME:-webgis_user}
|
||||||
MYSQL_PASSWORD: ${DB_PASSWORD:-webgis_password}
|
MYSQL_PASSWORD: ${DB_PASSWORD:-webgis_password}
|
||||||
ports:
|
|
||||||
- "${DB_PORT:-3307}:3306"
|
|
||||||
volumes:
|
volumes:
|
||||||
- db_data:/var/lib/mysql
|
- db_data:/var/lib/mysql
|
||||||
- ./Leaflet/sql/schema.sql:/docker-entrypoint-initdb.d/01-spbu-schema.sql:ro
|
- ./Leaflet/sql/schema.sql:/docker-entrypoint-initdb.d/01-spbu-schema.sql:ro
|
||||||
|
|||||||
Reference in New Issue
Block a user