From 7649cef008eb8c450ad67eec742b983095dcec84 Mon Sep 17 00:00:00 2001 From: Ross Koepke Date: Wed, 4 Dec 2019 03:55:29 -0600 Subject: [PATCH 1/2] Hardcode user/group ARGS Hardcoding user and group ARGS into the shell commands fixed an issue I was having: When passing ${user_name}:${group_name}, etc etc, the shell was reading all the args as "0" instead of 1000 etc. This caused the make to fail. Step 8/27 : ARG group_id=1000 ---> Using cache ---> 4e5b9a63b30e Step 9/27 : RUN groupadd -g ${group_id} ${group_name} ---> Running in 30201b6ab1bb groupadd: GID '0' already exists The command '/bin/sh -c groupadd -g ${group_id} ${group_name}' returned a non-zero code: 4 Makefile:11: recipe for target 'docker-build' failed make: *** [docker-build] Error 4 Step 8/27 : ARG group_id=1000 ---> Using cache ---> 4e5b9a63b30e Step 9/27 : RUN groupadd -g 1000 ubuntu ---> Running in 35d12c8401c4 Removing intermediate container 35d12c8401c4 ---> 57185d9d33e8 Step 10/27 : RUN useradd -u ${user_id} -g ${group_id} -d /home/${user_name} --create-home --shell /bin/bash ${user_name} ---> Running in 7d09306b8138 useradd: UID 0 is not unique The command '/bin/sh -c useradd -u ${user_id} -g ${group_id} -d /home/${user_name} --create-home --shell /bin/bash ${user_name}' returned a non-zero code: 4 Makefile:11: recipe for target 'docker-build' failed make: *** [docker-build] Error 4 --- docker/Dockerfile | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index f1d29d1..a53aca4 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -12,14 +12,14 @@ ARG group_name=ubuntu ARG group_id=1000 # create user -RUN groupadd -g ${group_id} ${group_name} -RUN useradd -u ${user_id} -g ${group_id} -d /home/${user_name} \ - --create-home --shell /bin/bash ${user_name} -RUN echo "${user_name} ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers -RUN chown -R ${user_name}:${group_name} /home/${user_name} +RUN groupadd -g 1000 ubuntu +RUN useradd -u 1000 -g 1000 -d /home/ubuntu \ + --create-home --shell /bin/bash ubuntu +RUN echo "ubuntu ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers +RUN chown -R ubuntu:ubuntu /home/ubuntu # user settings -ENV HOME /home/${user_name} +ENV HOME /home/ubuntu ENV LANG en_US.UTF-8 # Intall Anaconda @@ -31,11 +31,11 @@ RUN echo 'export PATH=$HOME/anaconda3/bin:$PATH' > /etc/profile.d/anaconda.sh && ENV PATH $HOME/anaconda3/bin:$PATH ENV LD_LIBRARY_PATH /usr/local/cuda-9.0/lib64:/usr/local/cuda-9.0/extras/CUPTI/lib64:$LD_LIBRARY_PATH -RUN chown -R ${user_name}:${group_name} $HOME/anaconda3 +RUN chown -R ubuntu:ubuntu $HOME/anaconda3 ##### Install Deeplabcut and its dependencies ##### -USER ${user_name} +USER ubuntu WORKDIR /work # Install DeepLabCut From 10775b48c042829a60def47a4d34be66f9f0ec5d Mon Sep 17 00:00:00 2001 From: Ross Koepke Date: Thu, 5 Dec 2019 09:56:40 -0600 Subject: [PATCH 2/2] Update Dockerfile Seems to fix issue stalling at RUN chown -R ${user_name}:${group_name} $HOME/anaconda3 I strongly suspect the stalling/locking up is unrelated to these changes, however. --- docker/Dockerfile | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index a53aca4..75a377e 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -11,15 +11,20 @@ ARG user_id=1000 ARG group_name=ubuntu ARG group_id=1000 +RUN echo ${user_name} +RUN echo ${user_id} +RUN echo ${group_name} +RUN echo ${group_id} + # create user -RUN groupadd -g 1000 ubuntu -RUN useradd -u 1000 -g 1000 -d /home/ubuntu \ - --create-home --shell /bin/bash ubuntu -RUN echo "ubuntu ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers -RUN chown -R ubuntu:ubuntu /home/ubuntu +RUN groupadd -g 1000 ${group_name} +RUN useradd -u 1000 -g 1000 -d /home/${user_name} \ + --create-home --shell /bin/bash ${user_name} +RUN echo "${user_name} ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers +RUN chown -R ${user_name}:${group_name} /home/${user_name} # user settings -ENV HOME /home/ubuntu +ENV HOME /home/${user_name} ENV LANG en_US.UTF-8 # Intall Anaconda @@ -31,11 +36,11 @@ RUN echo 'export PATH=$HOME/anaconda3/bin:$PATH' > /etc/profile.d/anaconda.sh && ENV PATH $HOME/anaconda3/bin:$PATH ENV LD_LIBRARY_PATH /usr/local/cuda-9.0/lib64:/usr/local/cuda-9.0/extras/CUPTI/lib64:$LD_LIBRARY_PATH -RUN chown -R ubuntu:ubuntu $HOME/anaconda3 +RUN chown -R ${user_name}:${group_name} $HOME/anaconda3 ##### Install Deeplabcut and its dependencies ##### -USER ubuntu +USER ${user_name} WORKDIR /work # Install DeepLabCut @@ -54,4 +59,3 @@ RUN sudo apt-get update --fix-missing && \ WORKDIR /work CMD ["/bin/bash"] -