Fix Coolify compose networking and local Docker override
This commit is contained in:
@@ -1,6 +1,9 @@
|
|||||||
# SPOTA Docker
|
# SPOTA Docker
|
||||||
|
|
||||||
Setup ini menjalankan aplikasi legacy SPOTA dengan PHP 7.4 Apache dan MySQL 8 dalam satu `docker-compose.yml`.
|
Setup ini menjalankan aplikasi legacy SPOTA dengan PHP Apache dan MySQL 8 dalam satu `docker-compose.yml`.
|
||||||
|
|
||||||
|
`docker-compose.yml` dibuat aman untuk Coolify: app tidak bind host port secara langsung dan hanya expose port internal `80`.
|
||||||
|
Untuk pemakaian lokal, Docker otomatis membaca `docker-compose.override.yml` yang menambahkan port host dan bind mount lokal.
|
||||||
|
|
||||||
## Jalankan Lokal
|
## Jalankan Lokal
|
||||||
|
|
||||||
@@ -51,6 +54,9 @@ Folder berikut di-mount dari host supaya data upload tidak masuk image:
|
|||||||
- `./files:/var/www/html/files`
|
- `./files:/var/www/html/files`
|
||||||
- `./img:/var/www/html/img`
|
- `./img:/var/www/html/img`
|
||||||
|
|
||||||
|
Bind mount tersebut hanya aktif untuk local development melalui `docker-compose.override.yml`.
|
||||||
|
Di Coolify, compose utama memakai named volume agar tidak bentrok dengan host port/path handling Coolify.
|
||||||
|
|
||||||
Opsional, upload berkas bisa dipindah ke lokasi di luar folder project dengan environment variable:
|
Opsional, upload berkas bisa dipindah ke lokasi di luar folder project dengan environment variable:
|
||||||
|
|
||||||
- `FILES_STORAGE_PATH=/absolute/path/to/files`
|
- `FILES_STORAGE_PATH=/absolute/path/to/files`
|
||||||
@@ -72,3 +78,4 @@ Sesuaikan environment berikut di Coolify:
|
|||||||
- `PHP_DISPLAY_ERRORS=0` untuk production
|
- `PHP_DISPLAY_ERRORS=0` untuk production
|
||||||
|
|
||||||
Port internal app adalah `80`. Database internal memakai service name `db` pada port `3306`.
|
Port internal app adalah `80`. Database internal memakai service name `db` pada port `3306`.
|
||||||
|
Jangan publish `8080:80` di compose utama untuk Coolify, karena Coolify akan mengurus routing sendiri dan bind host port bisa bentrok dengan resource lain.
|
||||||
|
|||||||
16
docker-compose.override.yml
Normal file
16
docker-compose.override.yml
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
services:
|
||||||
|
app:
|
||||||
|
ports:
|
||||||
|
- "${APP_PORT:-8080}:80"
|
||||||
|
volumes:
|
||||||
|
- ./files:/var/www/html/files
|
||||||
|
- ./img:/var/www/html/img
|
||||||
|
|
||||||
|
db:
|
||||||
|
ports:
|
||||||
|
- "${DB_PORT:-3307}:3306"
|
||||||
|
volumes:
|
||||||
|
- db_data_local:/var/lib/mysql
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
db_data_local:
|
||||||
@@ -3,10 +3,10 @@ services:
|
|||||||
build: .
|
build: .
|
||||||
container_name: spota-app
|
container_name: spota-app
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
ports:
|
expose:
|
||||||
- "${APP_PORT:-8080}:80"
|
- "80"
|
||||||
environment:
|
environment:
|
||||||
APP_URL: ${APP_URL:-http://localhost:8080}
|
APP_URL: ${APP_URL:-http://localhost}
|
||||||
DB_HOST: ${DB_HOST:-db}
|
DB_HOST: ${DB_HOST:-db}
|
||||||
DB_USER: ${DB_USER:-spota_user}
|
DB_USER: ${DB_USER:-spota_user}
|
||||||
DB_PASSWORD: ${DB_PASSWORD:-spota_password}
|
DB_PASSWORD: ${DB_PASSWORD:-spota_password}
|
||||||
@@ -19,8 +19,8 @@ services:
|
|||||||
PHP_DISPLAY_ERRORS: ${PHP_DISPLAY_ERRORS:-1}
|
PHP_DISPLAY_ERRORS: ${PHP_DISPLAY_ERRORS:-1}
|
||||||
FILES_STORAGE_PATH: ${FILES_STORAGE_PATH:-/var/www/html/files}
|
FILES_STORAGE_PATH: ${FILES_STORAGE_PATH:-/var/www/html/files}
|
||||||
volumes:
|
volumes:
|
||||||
- ./files:/var/www/html/files
|
- spota_files:/var/www/html/files
|
||||||
- ./img:/var/www/html/img
|
- spota_img:/var/www/html/img
|
||||||
depends_on:
|
depends_on:
|
||||||
db:
|
db:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
@@ -35,10 +35,8 @@ services:
|
|||||||
MYSQL_USER: ${DB_USER:-spota_user}
|
MYSQL_USER: ${DB_USER:-spota_user}
|
||||||
MYSQL_PASSWORD: ${DB_PASSWORD:-spota_password}
|
MYSQL_PASSWORD: ${DB_PASSWORD:-spota_password}
|
||||||
MYSQL_DATABASE: ${DB_NAME:-spota_spotadb}
|
MYSQL_DATABASE: ${DB_NAME:-spota_spotadb}
|
||||||
ports:
|
|
||||||
- "${DB_PORT:-3307}:3306"
|
|
||||||
volumes:
|
volumes:
|
||||||
- db_data:/var/lib/mysql
|
- spota_db_data:/var/lib/mysql
|
||||||
- ./docker/mysql-init:/docker-entrypoint-initdb.d:ro
|
- ./docker/mysql-init:/docker-entrypoint-initdb.d:ro
|
||||||
- ./spota_db:/spota_db:ro
|
- ./spota_db:/spota_db:ro
|
||||||
healthcheck:
|
healthcheck:
|
||||||
@@ -48,4 +46,6 @@ services:
|
|||||||
retries: 20
|
retries: 20
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
db_data:
|
spota_db_data:
|
||||||
|
spota_files:
|
||||||
|
spota_img:
|
||||||
|
|||||||
Reference in New Issue
Block a user