diff --git a/.gitattributes b/.gitattributes index 2a651908c4756aa3a06780eabb3139e2088e1867..f60cc6e1cb647ad2eb82cc3232b396c83ba8d4cb 100644 --- a/.gitattributes +++ b/.gitattributes @@ -2375,6 +2375,7 @@ Docker/lofar-outputproc/Dockerfile.tmpl -text Docker/lofar-pipeline/Dockerfile.tmpl -text Docker/lofar-pulp/Dockerfile.tmpl -text Docker/lofar-pulp/bashrc -text +Docker/lofar-pulp/chuser.sh -text Docker/lofar-pulp/sudoers -text Docker/lofar-tbbwriter/Dockerfile -text Docker/lofar-tbbwriter/bashrc -text diff --git a/Docker/lofar-pulp/Dockerfile.tmpl b/Docker/lofar-pulp/Dockerfile.tmpl index bc7297dfefa4d4606e7fb6142f8312b97e11688d..3be362ba4e4968c5b28bd99661099bc15d507653 100644 --- a/Docker/lofar-pulp/Dockerfile.tmpl +++ b/Docker/lofar-pulp/Dockerfile.tmpl @@ -61,3 +61,5 @@ RUN apt-get update && apt-get install -y liblog4cplus-dev libhdf5-dev libblitz0- apt-get autoremove -y COPY ["bashrc", "/opt/"] +COPY ["chuser.sh", "/usr/local/bin"] +ENTRYPOINT ["/usr/local/bin/chuser.sh"] diff --git a/Docker/lofar-pulp/chuser.sh b/Docker/lofar-pulp/chuser.sh new file mode 100755 index 0000000000000000000000000000000000000000..46872545a87da2e2516bc3ab2e443644c8ee6281 --- /dev/null +++ b/Docker/lofar-pulp/chuser.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env bash + +# Configure user +if [ -z "${USER}" ]; then + export USER=${UID} +fi + +# Create home directory +if [ -z "${HOME}" ]; then + export HOME=/home/${USER} + mkdir -p $HOME && cd $HOME +fi + +# Add user to system +fgrep -q ":x:${UID}:" /etc/passwd || echo "${USER}:x:${UID}:${UID}::${HOME}:/bin/bash" >> /etc/passwd +fgrep -q ":x:${UID}:" /etc/group || echo "${USER}:x:${UID}:" >> /etc/group + +# Set the environment +[ -e /opt/bashrc ] && source /opt/bashrc + +# Run the requested command +if [ -z "$*" ]; then + exec /bin/bash +else + exec "$@" +fi