fix(dockerfile): normalize wwwroot permissions so the non-root runtime user can read static files#604
Draft
kevinheneveld wants to merge 1 commit into
Draft
Conversation
kevinheneveld
pushed a commit
to kevinheneveld/Listenarr
that referenced
this pull request
May 18, 2026
…rafting
State on top of the post-rebase baseline:
- 5 more commits on kevin/live (preview button, hydrated audiobook,
publish-date normalize, image-500 fix, modal z-index prop)
- PR Listenarrs#600 + Listenarrs#603 opened (defensive fixes, non-draft)
- PR Listenarrs#604 + Listenarrs#605 opened as drafts (wave 1 of the staggered
feature-PR queue per Kevin's pacing instruction)
- Issue #5 filed for LibriVox metadata source (deferred)
- 8 features on kevin/live still without an upstream PR — queued
with a per-day schedule
Live image: listenarr:local-20260517-1651 (head a712b49).
Two-step rollback: 1634 → 1617.
(cherry picked from commit 8a65297)
440ba2b to
cac533e
Compare
kevinheneveld
pushed a commit
to kevinheneveld/Listenarr
that referenced
this pull request
May 19, 2026
…rafting
State on top of the post-rebase baseline:
- 5 more commits on kevin/live (preview button, hydrated audiobook,
publish-date normalize, image-500 fix, modal z-index prop)
- PR Listenarrs#600 + Listenarrs#603 opened (defensive fixes, non-draft)
- PR Listenarrs#604 + Listenarrs#605 opened as drafts (wave 1 of the staggered
feature-PR queue per Kevin's pacing instruction)
- Issue #5 filed for LibriVox metadata source (deferred)
- 8 features on kevin/live still without an upstream PR — queued
with a per-day schedule
Live image: listenarr:local-20260517-1651 (head a712b49).
Two-step rollback: 1634 → 1617.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Drafted for visibility per the pacing note on #590 — happy to leave this in draft until you have time.
The Docker final stage copies
/app/publishfrom the build stage but doesn't normalize permissions on/app/wwwroot/*. Depending on the build host's umask and the source files' modes, the non-root runtime user (listenarr) can hitEACCESreading individual static assets — typically manifests itself as 403/404 on a subset of bundled FE files (e.g., a single chunk fails to load and the SPA boots into a blank screen).Fix: add a single Dockerfile step right after
COPY --from=build /app/publish .that walks/app/wwwrootand sets directories to755and files to644. Matches the conventional mode for served static content and is no-op on most build hosts.Test plan
assets/*.jschunk now serves correctly under the listenarr user without root override.🤖 Generated with Claude Code