diff options
Diffstat (limited to '')
| -rwxr-xr-x | bin/enter (renamed from bin/hibiki/enter) | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/bin/hibiki/enter b/bin/enter index 67a9806..d646541 100755 --- a/bin/hibiki/enter +++ b/bin/enter @@ -6,6 +6,7 @@ target= img="" dockerfile="${PWD}/Dockerfile" become= +priv= usage() { printf "usage: %s OPTIONS -- [DOCKER RUN ARGS]\n" "$(basename "$0")" @@ -14,17 +15,19 @@ usage() { printf " -i IMAGE\n" printf " -f DOCKERFILE\n" printf " -u (become user)\n" + printf " -D (run with elevated privileged, but not privileged)\n" printf "\n" printf "Enter the container defined in Dockerfile, with \$PWD mounted at /src\n" exit 2 } -while getopts t:i:f:uh o; do +while getopts t:i:f:uDh o; do case $o in t) target="$OPTARG" ;; i) img="$OPTARG" ;; f) dockerfile="$OPTARG" ;; u) become=1 ;; + D) priv=1 ;; h|?) usage ;; esac done @@ -33,7 +36,14 @@ shift $((OPTIND - 1)) [ -z "$img" ] && img="$(basename "$(dirname "$(readlink -f -- "$dockerfile")")")" extra_args= -[ -n "$become" ] && extra_args="--user=$(id -u):$(id -g)" +[ -n "$become" ] && extra_args="${extra_args}--user=$(id -u):$(id -g) " +[ -n "$priv" ] && { + extra_args="${extra_args}--tmpfs=/run --tmpfs=/sys/fs/cgroup "; + extra_args="${extra_args}--sysctl=net.ipv4.ip_forward=1 "; + extra_args="${extra_args}--security-opt=apparmor:unconfined --security-opt=seccomp:unconfined "; + extra_args="${extra_args}--cap-add NET_ADMIN --cap-add SYS_ADMIN --cap-add SYS_RESOURCE "; + extra_args="${extra_args}--tmpfs=/var/lib/docker "; +} # allow setting this to some non-file value to skip building # > enter -i alpine -f none |