From 3f18dbaadf4401497a9c8b2e6c8e99260dc50847 Mon Sep 17 00:00:00 2001 From: I-Fun Date: Thu, 2 Apr 2026 23:51:29 +0700 Subject: [PATCH] feat: update Docker configuration to manage public storage and optimize entrypoint script --- .dockerignore | 3 +++ Dockerfile | 3 ++- docker/entrypoint.sh | 12 ++++++++---- docker/supervisord.conf | 29 +++++++++++++---------------- 4 files changed, 26 insertions(+), 21 deletions(-) diff --git a/.dockerignore b/.dockerignore index be30cbf..8c5f10e 100644 --- a/.dockerignore +++ b/.dockerignore @@ -29,6 +29,9 @@ database/database.sqlite public/build public/hot +# ── Local storage symlink (recreated by entrypoint.sh) ── +public/storage + # ── Tests / dev tooling ────────────────────── tests phpunit.xml diff --git a/Dockerfile b/Dockerfile index 8b9af39..5a35dfb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -24,7 +24,7 @@ RUN apk add --no-cache \ nginx \ supervisor \ sqlite \ - sqlite-dev \ + sqlite-dev \ curl \ git \ unzip \ @@ -84,6 +84,7 @@ RUN chmod +x /entrypoint.sh # ── File system ────────────────────────────── RUN mkdir -p \ + storage/app/public \ storage/app/private/talent-assets \ storage/logs \ storage/framework/cache \ diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh index 15fe6b5..7e9527d 100644 --- a/docker/entrypoint.sh +++ b/docker/entrypoint.sh @@ -41,15 +41,19 @@ chmod -R 775 \ bootstrap/cache \ database -# ── 5. Run migrations ──────────────────────── +# ── 5. Discover packages (composer --no-scripts skips this) ── +echo "[packages] Discovering service providers…" +php artisan package:discover --ansi 2>/dev/null || true + +# ── 6. Run migrations ───────────────────────── echo "[migrate] Running database migrations…" php artisan migrate --force --no-interaction -# ── 5b. Create public storage symlink ──────── +# ── 7. Create public storage symlink ────────── echo "[storage] Creating public storage symlink…" php artisan storage:link --quiet 2>/dev/null || true -# ── 6. Cache config / routes / views ──────── +# ── 8. Cache config / routes / views ───────── echo "[optimize] Caching configuration…" php artisan config:cache --quiet php artisan route:cache --quiet @@ -59,5 +63,5 @@ echo "──────────────────────── echo " All checks passed. Starting services…" echo "──────────────────────────────────────────" -# ── 7. Hand off to Supervisor ──────────────── +# ── 9. Hand off to Supervisor ──────────────── exec supervisord -c /etc/supervisord.conf diff --git a/docker/supervisord.conf b/docker/supervisord.conf index 0b088d0..4359e55 100644 --- a/docker/supervisord.conf +++ b/docker/supervisord.conf @@ -14,18 +14,7 @@ serverurl=unix:///run/supervisor.sock [rpcinterface:supervisor] supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface -; ── Nginx ───────────────────────────────────────────────────────────────── -[program:nginx] -command=nginx -g "daemon off;" -autostart=true -autorestart=true -priority=10 -stdout_logfile=/dev/stdout -stdout_logfile_maxbytes=0 -stderr_logfile=/dev/stderr -stderr_logfile_maxbytes=0 - -; ── PHP-FPM ─────────────────────────────────────────────────────────────── +; ── PHP-FPM ─────────────────────────────────────────────────────────────────── [program:php-fpm] command=php-fpm --nodaemonize autostart=true @@ -36,12 +25,20 @@ stdout_logfile_maxbytes=0 stderr_logfile=/dev/stderr stderr_logfile_maxbytes=0 -; ── Laravel Queue Worker ────────────────────────────────────────────────── +; ── Nginx ───────────────────────────────────────────────────────────────────── +[program:nginx] +command=nginx -g "daemon off;" +autostart=true +autorestart=true +priority=10 +stdout_logfile=/dev/stdout +stdout_logfile_maxbytes=0 +stderr_logfile=/dev/stderr +stderr_logfile_maxbytes=0 + +; ── Laravel Queue Worker ────────────────────────────────────────────────────── [program:queue] command=php /var/www/html/artisan queue:work --sleep=3 --tries=3 --max-time=3600 --queue=default - - -queue=default directory=/var/www/html user=www-data autostart=true