From 751f1ef212ebd1cfd892fa67bfd6dc6ed27ccfd8 Mon Sep 17 00:00:00 2001 From: Yaman Umuroglu <yamanu@xilinx.com> Date: Tue, 29 Oct 2019 17:30:58 +0000 Subject: [PATCH] [Docker] prototype a non-sudo Docker flow --- Dockerfile | 19 +++++++++++++++++-- run-docker.sh | 20 +++++++++++++++----- 2 files changed, 32 insertions(+), 7 deletions(-) diff --git a/Dockerfile b/Dockerfile index d68bf0abf..35be4c177 100644 --- a/Dockerfile +++ b/Dockerfile @@ -15,7 +15,22 @@ RUN rm requirements.txt # co-development. ENV PYTHONPATH "${PYTHONPATH}:/workspace/finn/src" ENV PYTHONPATH "${PYTHONPATH}:/workspace/brevitas_cnv_lfc/training_scripts" +ENV PYTHONPATH "${PYTHONPATH}:/workspace/brevitas" -WORKDIR /workspace/finn +ARG GID +ARG GNAME +ARG UNAME +ARG UID +ARG PASSWD -ENTRYPOINT pip install -e /workspace/brevitas && python setup.py test; /bin/bash +RUN groupadd -g $GID $GNAME +RUN useradd -M -u $UID $UNAME -g $GNAME +RUN usermod -aG sudo $UNAME +RUN echo "$UNAME:$PASSWD" | chpasswd +RUN echo "root:$PASSWD" | chpasswd +RUN ln -s /workspace /home/$UNAME +RUN chown -R $UNAME:$GNAME /home/$UNAME +USER $UNAME + +WORKDIR /home/$UNAME/finn +ENTRYPOINT python setup.py test; /bin/bash diff --git a/run-docker.sh b/run-docker.sh index 291f89415..bbbbd9a46 100755 --- a/run-docker.sh +++ b/run-docker.sh @@ -1,5 +1,12 @@ #!/bin/sh +DOCKER_GID=$(id -g) +DOCKER_GNAME=$(id -gn) +DOCKER_UNAME=$(id -un) +DOCKER_UID=$(id -u) +DOCKER_PASSWD="finn" +DOCKER_TAG="finn_$DOCKER_UNAME" + # Absolute path to this script, e.g. /home/user/bin/foo.sh SCRIPT=$(readlink -f "$0") # Absolute path this script is in, thus /home/user/bin @@ -15,17 +22,20 @@ EXAMPLES_LOCAL=$SCRIPTPATH/brevitas_cnv_lfc git clone --branch feature/finn_onnx_export $BREVITAS_REPO $BREVITAS_LOCAL || git -C "$BREVITAS_LOCAL" pull git clone $EXAMPLES_REPO $EXAMPLES_LOCAL || git -C "$EXAMPLES_LOCAL" pull -# remove possible temp files created from previous execution -sudo rm -rf .eggs tests/__pycache__/ - echo "Mounting $SCRIPTPATH into /workspace/finn" echo "Mounting $SCRIPTPATH/brevitas into /workspace/brevitas" echo "Mounting $SCRIPTPATH/brevitas_cnv_lfc into /workspace/brevitas_cnv_lfc" # Build the FINN Docker image -docker build --tag=finn . +docker build --tag=$DOCKER_TAG \ + --build-arg GID=$DOCKER_GID \ + --build-arg GNAME=$DOCKER_GNAME \ + --build-arg UNAME=$DOCKER_UNAME \ + --build-arg UID=$DOCKER_UID \ + --build-arg PASSWD=$DOCKER_PASSWD \ + . # Launch container with current directory mounted docker run --rm --name finn_dev -it \ -v $SCRIPTPATH:/workspace/finn \ -v $SCRIPTPATH/brevitas:/workspace/brevitas \ -v $SCRIPTPATH/brevitas_cnv_lfc:/workspace/brevitas_cnv_lfc \ -finn bash +$DOCKER_TAG bash -- GitLab