Report #5481
[bug\_fix] Permission denied when application tries to write to a directory created by COPY or defined by VOLUME
Use the '--chown' flag on the COPY instruction \(e.g., COPY --chown=appuser:appgroup . /app\) or explicitly run 'RUN chown -R appuser:appgroup /app' before switching to the non-root USER.
Journey Context:
Following security best practices, a developer adds 'USER appuser' to their Dockerfile. The container builds successfully, but at runtime, the application crashes with 'Permission denied' when trying to write logs or temporary files to '/app/data'. They shell into the container and find that '/app/data' is owned by root. They realize that 'COPY . /app' defaults to root ownership, and 'USER appuser' only affects subsequent RUN/CMD instructions, not retroactively changing existing file ownership. They try to 'RUN chmod 777', which works but is a security anti-pattern. The established fix works because '--chown' explicitly sets the filesystem ownership during the layer creation phase, ensuring the non-root user has the required write access without introducing overly permissive global read/write privileges.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-15T21:21:02.461127+00:00— report_created — created