Skip to content

Instantly share code, notes, and snippets.

@gythialy
Forked from avishayp/Dockerfile
Created February 25, 2020 01:16
Show Gist options
  • Save gythialy/1a62165126e18641acfb0220496ddf1a to your computer and use it in GitHub Desktop.
Save gythialy/1a62165126e18641acfb0220496ddf1a to your computer and use it in GitHub Desktop.
Add non-root user for alpine linux
# non root user example for alpine
#
# usage:
# $ docker build --build-arg "USER=someuser" --tag test .
# $ docker run --rm test
FROM alpine
ARG USER=default
ENV HOME /home/$USER
# install sudo as root
RUN apk add --update sudo
# add new user
RUN adduser -D $USER \
&& echo "$USER ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/$USER \
&& chmod 0440 /etc/sudoers.d/$USER
USER $USER
WORKDIR $HOME
# files in /home/$USER to be owned by $USER
# docker has --chown flag for COPY, but it does not expand ENV so we fallback to:
# COPY src src
# RUN sudo chown -R $USER:$USER $HOME
CMD echo "User $(whoami) running from $PWD with premissions: $(sudo -l)"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment