From 1e21c60a365943792a241f956b45e8aaa0e17b3b Mon Sep 17 00:00:00 2001 From: Nicolas Boisselier Date: Mon, 14 Nov 2016 18:49:21 +0000 Subject: [PATCH] docker --- etc/profile.d/docker.sh | 58 +++++++++++++++++++++++------------------ 1 file changed, 32 insertions(+), 26 deletions(-) diff --git a/etc/profile.d/docker.sh b/etc/profile.d/docker.sh index 3880684b..efbd1376 100644 --- a/etc/profile.d/docker.sh +++ b/etc/profile.d/docker.sh @@ -4,48 +4,54 @@ if [ -z "$MYVIMRC" ]; then [ -z "$DOCKER_CERT_PATH" -o ! -e "$DOCKER_CERT_PATH" ] && which docker-machine>/dev/null && docker-machine ls -q 2>/dev/null |grep -qFm1 docker && eval "$(docker-machine env docker)" 2>/dev/null fi -_docker_name() { - if [ -n "$1" -a ! -e "$1" ]; then - echo "$1" - return - elif [ -n "$1" -a -e "$1" ]; then - cd "$1" 1>&2 || return 1 - shift - elif [ -e Dockerfile ]; then - [ 1 = 1 ] - fi - basename $(pwd) -} - docker_build() { - local docker_name=$(_docker_name "$1") || return ; shift - [ ! -e Dockerfile ] && echo "Dockerfile missing in $(pwd)" 1>&2 && return + shell_help "Usage: $FUNCNAME [DIR_DOCKERFILE]" "$@" && return + local docker_name=$(basename "$(pwd)") + local pwd="" + if [ -n "$1" -a -d "$1" ]; then + pwd=$(pwd) + cd "$1" || return + docker_name=$(basename "$(pwd)") + shift + fi + [ ! -e Dockerfile ] && echo "$FUNCNAME: Dockerfile missing in $(pwd)" 1>&2 && return + + local ex=0 if [ -n "$(docker images -q $docker_name 2>/dev/null)" ]; then - echo "$docker_name already build." - return 1 + echo "$FUNCNAME: $docker_name already build." + ex=1 else perl -ne '/^\s*\#\s*DOCKER_BUILD\s*(.*?)$/ and system "$1"' Dockerfile - docker build --rm --force-rm=true -t $docker_name . + docker build --rm --force-rm=true -t $@ $docker_name . if [ "$?" != 0 ]; then docker rmi -f $(docker images -qf "dangling=true") - echo "Review your Docker file" - return 1 + echo "$FUNCNAME: Review your Docker file" + ex=1 fi fi - return 0 + [ -n "$pwd" ] && cd "$pwd" + return $ex } docker_run() { - local docker_name=$(_docker_name "$1") || return - #[ -n "$1" -a -d "$1" ] && cd "$1" - shift - [ -e Dockerfile ] && perl -ne '/^\s*\#\s*DOCKER_RUN\s*(.*?)$/ and $RUN=1 and system "$1"; END{exit ($RUN ? 0 : 1)}' Dockerfile && return - docker run --rm -it --name $docker_name --hostname $docker_name $@ $docker_name + shell_help_noarg "Usage: $FUNCNAME [DIR_DOCKERFILE]" "$@" && return + + local docker_name=$(basename `pwd`) + local pwd="" + if [ -n "$1" ]; then + [ -d "$1" ] && docker_name=$(basename $1) && pwd=`pwd` && cd "$1" + shift + fi + local opt + [ -z "$@" ] && opt=$(perl -ne '/^\s*\#\s*DOCKER_RUN\s*(.*?)$/&&print "$1 "' "Dockerfile" 2>/dev/null) + eval docker run --rm -it --name $docker_name --hostname $docker_name $opt$@ $docker_name + + [ -n "$pwd" ] && cd "$pwd" } docker_clean() { -- 2.47.3