Docker runs as root. The programs executing inside containers too. Make it a bit better.
# do everything you need as root (maybe installing some dependencies) # create a non-root user RUN addgroup --gid 1001 appgroup RUN useradd --create-home --gid 1001 --uid 1001 appuser # set new workdir WORKDIR /home/appuser # activate non-root user USER appuser # copy new files with correct permissions COPY --chown=appuser:appgroup app.py .
If you need to mount or use files from your file system, give permissions to the UID/GID defined above:
# set ownership, recursive, userid:groupid chown -R 1001:1001 /data/myvolume # full access to members of the group (read+write+execute) chmod 775 /data/myvolume # inherit group ownership chmod g+s /data/myvolume # Add your host user to the group allowing you to conveniently work with the directory from your host machine adduser <your-username> 1001