package-lock.json was generated on Windows and only locks
@esbuild/win32-x64, no linux-x64 entry. npm ci installs strictly
from lockfile and fails with "package @esbuild/linux-x64 could not
be found" on Linux build hosts. npm install resolves the correct
platform binary even when absent from the lock.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
App (PHP-FPM) container never got public/build/manifest.json, only
the nginx container built it — blade's @vite runs server-side in PHP
and threw "Vite manifest not found", causing 500 on every page.
Also:
- strip docker/ (incl. DB dump) from the shipped app image
- pin npm installs to package-lock.json via npm ci in both build stages
- fix .dockerignore case typo (Docker/Dockerfile -> docker/Dockerfile)
- pass AWS_* env vars to app service, required since FILESYSTEM_DISK=s3
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
AppServiceProvider registered Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider
unconditionally. That package lives in composer.json require-dev and is never
installed by `composer install --no-dev` (used in docker/Dockerfile), so the
class doesn't exist in production, causing a fatal error on every request.