diff --git a/dockerized/SKILL.md b/dockerized/SKILL.md index 81e871a..a794344 100644 --- a/dockerized/SKILL.md +++ b/dockerized/SKILL.md @@ -40,7 +40,7 @@ Only publish HTTP and RTMP by default. Keep MediaMTX HLS behind Apache and keep - When changing MediaMTX ports, update Compose environment, published ports, entrypoint defaults, and the template together. - When changing Laravel runtime behavior, update the shared `x-app-environment` block unless the value belongs to one role only. - When changing queue behavior, prefer env-driven options on the `queue` service and `docker/app/entrypoint.sh`. -- Keep `npm run build` after PHP setup and Composer install in `docker/app/Dockerfile`; the Wayfinder Vite plugin invokes `php artisan wayfinder:generate` during the build. The asset stage must also provide safe build-time Laravel env values and should run `php artisan wayfinder:generate --with-form --no-interaction` before `npm run build` so failures are visible in Docker logs. +- Keep `npm run build` after PHP setup and Composer install in `docker/app/Dockerfile`; the Wayfinder Vite plugin invokes `php artisan wayfinder:generate` during the build. The asset stage must also provide safe build-time Laravel env values, create Laravel writable directories such as `storage/framework/views`, and run `php artisan wayfinder:generate --with-form --no-interaction` before `npm run build` so failures are visible in Docker logs. - Keep deploy script behavior idempotent: repeat runs should update the Git checkout, rebuild, migrate, and restart services without deleting volumes. - Keep generated secrets in `.env`; do not bake secrets into images or templates. diff --git a/dockerized/docker/app/Dockerfile b/dockerized/docker/app/Dockerfile index bcca9f6..b9d6cbf 100644 --- a/dockerized/docker/app/Dockerfile +++ b/dockerized/docker/app/Dockerfile @@ -30,7 +30,6 @@ RUN apt-get update \ pdo_pgsql \ pdo_sqlite \ pgsql \ - sqlite3 \ zip \ && pecl install redis \ && docker-php-ext-enable redis \ @@ -78,7 +77,15 @@ COPY runtime/source/package.json runtime/source/package-lock.json ./ RUN npm ci COPY runtime/source/ ./ -RUN composer dump-autoload --optimize --no-dev \ +RUN mkdir -p \ + storage/app/private/recordings \ + storage/app/public \ + storage/framework/cache/data \ + storage/framework/sessions \ + storage/framework/views \ + storage/logs \ + bootstrap/cache \ + && composer dump-autoload --optimize --no-dev \ && php artisan package:discover --ansi \ && php artisan route:clear \ && php artisan wayfinder:generate --with-form --no-interaction \