From 4ca10f8573a1fc76d5e3f825e66e4c62f4fb672d Mon Sep 17 00:00:00 2001 From: =?utf8?q?=EC=98=A4=ED=98=95=EC=84=9D/=EB=8F=99=EC=9E=91=EC=A0=9C?= =?utf8?q?=EC=96=B4Lab=28SR=29/Staff=20Engineer/=EC=82=BC=EC=84=B1?= =?utf8?q?=EC=A0=84=EC=9E=90?= Date: Thu, 20 Sep 2018 14:47:00 +0900 Subject: [PATCH] Revise run & docker-run command (#2786) Revise run & docker-run command Same implementation with nncc Signed-off-by: Hyeongseok Oh --- run | 28 +++++++++++++++++++++------- scripts/command/docker-run | 18 +----------------- scripts/docker.configuration | 44 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 66 insertions(+), 24 deletions(-) create mode 100644 scripts/docker.configuration diff --git a/run b/run index 2fe577b..eaf66f3 100755 --- a/run +++ b/run @@ -1,22 +1,36 @@ #!/bin/bash +NNFW_SCRIPT_RPATH="scripts" +NNFW_COMMAND_RPATH="${NNCC_SCRIPT_RPATH}/command" + +NNFW_PROJECT_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +NNFW_SCRIPT_PATH="${NNCC_PROJECT_PATH}/${NNCC_SCRIPT_RPATH}" + +function Usage() +{ + echo "Usage: $0 [COMMAND] ..." + echo "Command:" + for file in "$NNFW_COMMAND_RPATH"/*; + do + echo " $(basename "$file")" + done +} + COMMAND=$1; shift if [[ -z "${COMMAND}" ]]; then - echo "USAGE: $0 [COMMAND] ..." + Usage() exit 255 fi -NNFW_PROJECT_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -NNFW_COMMAND_RPATH="scripts/command" - -NNFW_COMMAND_FILE="${NNFW_PROJECT_PATH}/${NNFW_COMMAND_RPATH}/${COMMAND}" +COMMAND_FILE="${NNFW_PROJECT_PATH}/${NNFW_COMMAND_RPATH}/${COMMAND}" -if [[ ! -f "${NNFW_COMMAND_FILE}" ]]; then +if [[ ! -f "${COMMAND_FILE}" ]]; then echo "ERROR: '${COMMAND}' is not supported" exit 255 fi export NNFW_PROJECT_PATH +export NNFW_SCRIPT_PATH -source "${NNFW_COMMAND_FILE}" "$@" +source "${COMMAND_FILE}" "$@" diff --git a/scripts/command/docker-run b/scripts/command/docker-run index 386c681..c991c96 100644 --- a/scripts/command/docker-run +++ b/scripts/command/docker-run @@ -1,22 +1,6 @@ #!/bin/bash -SCRIPT_ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" - -source $SCRIPT_ROOT/common.sh - -HOST_HOME=$SCRIPT_ROOT/../.. -DOCKER_HOME=/home - -GIT_SSL_NO_VERIFY=1 - -DOCKER_VOLUMES+=" -v $HOST_HOME:$DOCKER_HOME" - -DOCKER_ENV_VARS+=" -e http_proxy" -DOCKER_ENV_VARS+=" -e no_proxy" -DOCKER_ENV_VARS+=" -e GIT_SSL_NO_VERIFY" - -DOCKER_RUN_OPTS="--rm" -DOCKER_RUN_OPTS+=" -w $DOCKER_HOME" +source "${NNFW_SCRIPT_PATH}/docker.configuration" docker run $DOCKER_RUN_OPTS $DOCKER_ENV_VARS $DOCKER_VOLUMES $DOCKER_IMAGE_NAME "$@" EXITCODE=$? diff --git a/scripts/docker.configuration b/scripts/docker.configuration new file mode 100644 index 0000000..29da27c --- /dev/null +++ b/scripts/docker.configuration @@ -0,0 +1,44 @@ +DOCKER_IMAGE_NAME=${DOCKER_IMAGE_NAME:-nnfw} +echo "Using docker image $DOCKER_IMAGE_NAME" + +if [ -z "`docker images | grep $DOCKER_IMAGE_NAME`" ]; then + echo "Need docker image!" + exit 1 +fi + +HOST_PATH="$NNFW_PROJECT_PATH" +DOCKER_PATH="$NNFW_PROJECT_PATH" + +export GIT_SSL_NO_VERIFY=1 + +DOCKER_VOLUMES=" -v $HOST_PATH:$DOCKER_PATH" + +DOCKER_ENV_VARS+=" -e http_proxy" +DOCKER_ENV_VARS+=" -e no_proxy" +DOCKER_ENV_VARS+=" -e GIT_SSL_NO_VERIFY" +DOCKER_ENV_VARS+=" -e ARMCOMPUTE_URL" +DOCKER_ENV_VARS+=" -e EIGEN_URL" +DOCKER_ENV_VARS+=" -e FARMHASH_URL" +DOCKER_ENV_VARS+=" -e FLATBUFFERS_URL" +DOCKER_ENV_VARS+=" -e GEMMLOWP_URL" +DOCKER_ENV_VARS+=" -e GTEST_URL" +DOCKER_ENV_VARS+=" -e NEON2SSE_URL" +DOCKER_ENV_VARS+=" -e TENSORFLOW_URL" + +DOCKER_RUN_OPTS="${DOCKER_OPTS}" +DOCKER_RUN_OPTS+=" --rm" +DOCKER_RUN_OPTS+=" -w $DOCKER_PATH" + +function docker_cleanup() +{ + # Newly created files during during docker run can have different ownership. + # This may cause some problems, for example, some jenkins slaves or developers + # can't remove built files due to lack of permission. + # To address this issue, let's change owner of all files + # in nncc to owner of nncc. + NNFW_OWNER_UID=$(stat -c "%u" $HOST_PATH) + NNFW_OWNER_GID=$(stat -c "%g" $HOST_PATH) + + CMD="chown -R $NNFW_OWNER_UID:$NNFW_OWNER_GID $DOCKER_PATH" + docker run $DOCKER_RUN_OPTS $DOCKER_ENV_VARS $DOCKER_VOLUMES $DOCKER_IMAGE_NAME $CMD +} -- 2.7.4