#
# etc/profile.d/docker.sh
#
-[ -z "$DOCKER_MACHINE_NAME" ] && DOCKER_MACHINE_NAME="docker"
-
-# NB 08.03.17: Desactivate to track a bug on osx
-if false && which docker-machine >/dev/null; then
-
- if [ -z "$DOCKER_CERT_PATH" -o ! -e "$DOCKER_CERT_PATH" ] \
- && [ _$(docker-machine status "$DOCKER_MACHINE_NAME" 2>/dev/null) = _Running ] \
- ; then
- eval "$(docker-machine env "$DOCKER_MACHINE_NAME")" 2>/dev/null
- fi
-
-fi
-
which docker > /dev/null || return 0
-[ -d $CLOUD_DIR/Docker ] && export DOCKER_HOME=$CLOUD_DIR/Docker
-# NB 14.01.17 [ -z "$DOCKER_HUB" ] && DOCKER_HUB=""
-
-docker_build() {
-
- shell_help "Usage: $FUNCNAME [DIR_DOCKERFILE]" "$@" && return
- local docker_name=$(basename "$(pwd)")
- local pwd=""
-
- if [ -n "$1" ]; then
-
- if [ -d "$1" ]; then
- pwd=$(pwd);
- cd "$1" || return
- docker_name=$(basename "$(pwd)")
- elif [ -n "$DOCKER_HOME" ]; then
- pwd=$(pwd);
- cd "$DOCKER_HOME" || return
- docker_name=$(basename "$(pwd)")
- fi
-
- shift
- fi
-
- local ex=0
- if [ "0" = "1" -a -n "$(docker images -q $docker_name:latest 2>/dev/null)" ]; then
- echo "$FUNCNAME: $docker_name already build."
- ex=2
-
- elif [ ! -e Dockerfile ]; then
- echo "$FUNCNAME: Dockerfile missing in $(pwd)" 1>&2
- ex=1
-
- else
- eval $(perl -ne '/^\s*\#\s*(?:DOCKER_BUILD_EXEC_PRE|DOCKER_BUILD)\s*(.*?)$/ and print qq|eval "$1";|' Dockerfile)
-
- echo $FUNCNAME: docker build --rm --force-rm=true $@ --tag $docker_name .
- docker build --rm --force-rm=true $@ --tag $docker_name .
-
- if [ "$?" != 0 ]; then
- docker rmi -f $(docker images -qf "dangling=true")
- echo "$FUNCNAME: Review your Docker file"
- ex=1
-
- else
- perl -ne '/^\s*\#\s*DOCKER_BUILD_EXEC_POST\s*(.*?)$/ and system "$1"' Dockerfile
- ex=${?:-0}
- fi
-
- fi
-
- [ -n "$pwd" ] && cd "$pwd"
- return $ex
-}
-
-_docker_cd() {
- case "$1" in
- -back)
- echo '[ -n "$pwd" ] && cd "$pwd";'
- #echo 'echo ">>>$pwd" 1>&2;'
- ;;
-
- *)
-
- local cd
- echo 'local docker_name="'$1'";'
- echo 'local pwd;'
- echo 'local docker_dir="'$(pwd)'";'
-
- if [ -n "$1" ]; then
- echo 'shift;'
-
- if [ -d "$1" ]; then
- cd="$1"
-
- elif [ -n "$DOCKER_HOME" -a -d "$DOCKER_HOME/$1" ]; then
- cd="$DOCKER_HOME/$1"
-
- fi
-
- else
- return
- echo 'return 1;'
-
- fi
-
- local docker_name
- #[ -n "$
- if [ -n "$cd" ]; then
- #echo "$cd `pwd`" 1>&2
- local pwd=`pwd`
-
- ! cd "$cd" echo 'return 1;' && return 1
- echo 'pwd="'$pwd'";'
- echo 'docker_dir="'$cd'";'
- echo 'cd "'$cd'" || return;'
-
- docker_name=$(basename "$(pwd)")
- [ -z "$docker_name" ] && docker_name="$cd"
- echo 'docker_name="'$docker_name'";'
- fi
-
- ;;
- esac
-}
-
-docker_run() {
- shell_help "Usage: $FUNCNAME [DIR_DOCKERFILE]" "$@" && return
-
- eval $(_docker_cd "$@")
- [ -z "$docker_name" -a -e "Dockerfile" ] && docker_name=$(basename `pwd`)
- #[ -z "$docker_name" ] && docker_name=$(basename `pwd`)
-
- if [ -z "$(docker images -q "$docker_name")" ]; then
- echo "$FUNCNAME: Can't find image $docker_name. Try docker_build $docker_name" 1>&2
-
- else
- local opt
- opt=$(perl -ne '/^\s*\#\s*DOCKER_RUN\s*(.*?)$/&&print qq|$1 |' Dockerfile 2>/dev/null)
- local cmd="docker run --rm -it --name $docker_name --hostname $docker_name $opt $docker_name $@"
- echo "$FUNCNAME: $cmd"
- eval "$cmd"
-
- fi
-
- eval $(_docker_cd -back)
-}
docker_clean() {
local images=$(docker images -qf "dangling=true")