From b25e42f07fb17139734b465b0c321ea2dcbfb854 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=EC=98=A4=ED=98=95=EC=84=9D/On-Device=20Lab=28SR=29/Staff?= =?utf8?q?=20Engineer/=EC=82=BC=EC=84=B1=EC=A0=84=EC=9E=90?= Date: Wed, 4 Dec 2019 14:16:45 +0900 Subject: [PATCH] [infra/cmd] Introduce nnas docker command (#9348) Introduce nnas docker-run command Ex) format check ./nnas docker-run ./nnas format Signed-off-by: Hyeongseok Oh --- infra/command/docker-run | 10 ++++++++ infra/config/docker.configuration | 49 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 infra/command/docker-run create mode 100644 infra/config/docker.configuration diff --git a/infra/command/docker-run b/infra/command/docker-run new file mode 100644 index 0000000..08610bf --- /dev/null +++ b/infra/command/docker-run @@ -0,0 +1,10 @@ +#!/bin/bash + +import "docker.configuration" + +docker run ${DOCKER_RUN_OPTS} ${DOCKER_ENV_VARS} ${DOCKER_VOLUMES} ${DOCKER_IMAGE_NAME} "$@" +EXITCODE=$? + +docker_cleanup + +exit ${EXITCODE} diff --git a/infra/config/docker.configuration b/infra/config/docker.configuration new file mode 100644 index 0000000..fba274c --- /dev/null +++ b/infra/config/docker.configuration @@ -0,0 +1,49 @@ +#!/bin/bash + +# Don't run this script +[[ "${BASH_SOURCE[0]}" == "${0}" ]] && echo "Please don't execute ${BASH_SOURCE[0]}" && exit 1 + +DOCKER_IMAGE_NAME=${DOCKER_IMAGE_NAME:-nnas} +echo "Using docker image ${DOCKER_IMAGE_NAME}" + +if [ -z "`docker images ${DOCKER_IMAGE_NAME}`" ]; then + echo "Need docker image!" + exit 1 +fi + +HOST_PATH="${NNAS_PROJECT_PATH}" +DOCKER_PATH="${NNAS_PROJECT_PATH}" + +export GIT_SSL_NO_VERIFY=1 + +DOCKER_VOLUMES+=" -v ${HOST_PATH}:${DOCKER_PATH}" + +if [[ ! -z "${ENV_FILE}" ]]; then + if [[ -e ${ENV_FILE} ]]; then + DOCKER_ENV_VARS+=" --env-file ${ENV_FILE} " + else + echo "[WARNING] Cannot find docker environment variable list file: ${ENV_FILE}" + fi +fi + +DOCKER_ENV_VARS+=" -e http_proxy" +DOCKER_ENV_VARS+=" -e no_proxy" +DOCKER_ENV_VARS+=" -e GIT_SSL_NO_VERIFY" + +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