diff options
Diffstat (limited to 'bin/enter')
| -rwxr-xr-x | bin/enter | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/bin/enter b/bin/enter index 61c1fb7..9c625a7 100755 --- a/bin/enter +++ b/bin/enter @@ -8,6 +8,7 @@ dockerfile="${PWD}/Dockerfile" priv= opts= become= +verbose= usage() { printf "usage: %s OPTIONS -- [ARGS]\n" "$(basename "$0")" @@ -18,12 +19,13 @@ usage() { printf " -o EXTRA OPTIONS\n" printf " -D (run with elevated privileged, but not privileged)\n" printf " -B (don't reassign uid/gid)\n" + printf " -v (be verbose)\n" printf "\n" printf "Enter the container defined in Dockerfile, with \$PWD mounted at /src\n" exit 2 } -while getopts t:i:f:o:BDh o; do +while getopts t:i:f:o:vBDh o; do case $o in t) target="$OPTARG" ;; i) img="$OPTARG" ;; @@ -31,12 +33,21 @@ while getopts t:i:f:o:BDh o; do o) opts="$OPTARG" ;; D) priv=1 ;; B) become=1 ;; + v) verbose=1 ;; h|?) usage ;; esac done shift $((OPTIND - 1)) -[ -z "$img" ] && img="$(basename "$(dirname "$(readlink -f -- "$dockerfile")")")" +if [ -z "$img" ]; then + img="$(basename "$(dirname "$(readlink -f -- "$dockerfile")")")" + + # allow setting this to some non-file value to skip building + # > enter -i alpine -f none + # for a quick alpine based container with $PWD mounted in + [ -f "$dockerfile" ] && \ + docker build --tag="$img" --target="$target" --file="$dockerfile" "$PWD" +fi extra_args= [ -n "$become" ] && extra_args="${extra_args} " @@ -58,17 +69,14 @@ extra_args= [ -n "$opts" ] && extra_args="${extra_args} ${opts}" -# allow setting this to some non-file value to skip building -# > enter -i alpine -f none -# for a quick alpine based container with $PWD mounted in -[ -f "$dockerfile" ] && \ - docker build --tag="$img" --target="$target" --file="$dockerfile" "$PWD" - [ -z "$become" ] && \ extra_args="${extra_args} --user="$(id -u):$(id -g)"" ep="sh" [ -n "$1" ] && { ep="$1"; shift; } + +[ -n "$verbose" ] && { set -x; } + exec docker run --rm -it \ --entrypoint="$ep" \ --mount=type=bind,src="$PWD",dst=/src -w /src $extra_args "$img" $@ |