diff --git a/Dockerfile b/Dockerfile index d68bf0abf229f91a968da55af22208f18bf1ca9a..35be4c1773bb87e4b032c804fe90970ce0705818 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/requirements.txt b/requirements.txt index e39635062a70c7c9e6694c1b40ddef893c0bb73c..a2247fea500d67f6dfb762f0214ddbfb921d1b00 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,4 @@ +docrep future numpy onnx diff --git a/run-docker.sh b/run-docker.sh index 291f894153586ea09ed4713d0fa4ed693a9cb735..bbbbd9a468332c647d465d1c7263b41051cef773 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