mirror of
https://github.com/InvoiceShelf/InvoiceShelf.git
synced 2026-09-07 15:44:10 +00:00
Backport of InvoiceShelf/InvoiceShelf#702 to 2.x. The chown half of it is a 2.x-only fix — 3.x had already dropped that line. storage/framework/{cache,sessions,views}, storage/logs and storage/app hold no tracked content, only .gitignore stubs, so nothing guarantees they exist inside a mounted volume. Docker seeds a named volume from the image once, when it is empty, and never again — a volume created by an older image keeps whatever it had through every upgrade. Without those directories Laravel cannot boot and the sqlite branch cannot place its database. The unguarded `chown -R www-data:www-data storage` was worse than ineffective. The image runs as www-data (uid 82), so chown of any file it does not own returns EPERM, and under `set -e` that aborts the entrypoint. A single uploaded file owned by the host user is enough to stop the container from starting — on exactly the mounted-volume setups the chown was meant to help. Verified against a built image: entrypoint exits 1 before this change, 0 after. A mount the container genuinely cannot write to is not something the entrypoint can repair, so it now says what is wrong and names the remedy instead of failing later with `cp: can't create ...`.