2018-04-01 21:36:34 +08:00
|
|
|
#!/bin/sh
|
|
|
|
|
2018-04-01 22:44:55 +08:00
|
|
|
OPTIND=1
|
|
|
|
|
|
|
|
delete=""
|
|
|
|
name=""
|
|
|
|
ports=""
|
|
|
|
volumes=""
|
|
|
|
|
2018-04-01 22:55:11 +08:00
|
|
|
show_help() {
|
|
|
|
cat << EOF
|
|
|
|
Usage: ${0##*/} [-hx] [-n NAME] [-p PORT]... [-v LIST]... [CMD]...
|
|
|
|
Starts an env Docker container. If CMD is specified, starts CMD
|
|
|
|
instead of a shell.
|
|
|
|
|
|
|
|
-h display this help and exit
|
|
|
|
-x delete Docker container after exit. will loose data
|
|
|
|
-p PORT forward host PORT to container PORT
|
|
|
|
-v LIST mount volume LIST. specify as LOCAL:MOUNT
|
|
|
|
|
|
|
|
EOF
|
|
|
|
}
|
|
|
|
|
|
|
|
while getopts "hxn:p:v:" opt; do
|
2018-04-01 22:44:55 +08:00
|
|
|
case "$opt" in
|
|
|
|
x)
|
|
|
|
delete="--rm "
|
|
|
|
;;
|
|
|
|
n)
|
|
|
|
name="--name $OPTARG "
|
|
|
|
;;
|
|
|
|
p)
|
|
|
|
ports="-p $OPTARG:$OPTARG $ports"
|
|
|
|
;;
|
|
|
|
v)
|
|
|
|
volumes="$volumes\n\t-v $OPTARG "
|
|
|
|
;;
|
2018-04-01 22:55:11 +08:00
|
|
|
h)
|
|
|
|
show_help
|
|
|
|
exit 0
|
|
|
|
;;
|
2018-04-01 22:44:55 +08:00
|
|
|
:)
|
|
|
|
echo "Option -$OPTARG requires an argument." >&2
|
2018-04-01 22:55:11 +08:00
|
|
|
show_help
|
2018-04-01 22:44:55 +08:00
|
|
|
exit 1
|
|
|
|
;;
|
|
|
|
\?)
|
|
|
|
echo "Invalid option: -$OPTARG" >&2
|
2018-04-01 22:55:11 +08:00
|
|
|
show_help
|
2018-04-01 22:44:55 +08:00
|
|
|
exit 1
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
done
|
|
|
|
|
|
|
|
shift $((OPTIND-1))
|
|
|
|
[ "$1" = "--" ] && shift
|
|
|
|
|
|
|
|
docker pull registry.labs.0x.no/env
|
|
|
|
|
|
|
|
cmd="\n\
|
|
|
|
docker run -it $delete$name\n\
|
|
|
|
$ports$volumes\n\
|
|
|
|
-v $PWD:/home/ambrose/src \n\
|
|
|
|
-v $HOME/.ssh:/home/ambrose/.ssh \n\
|
|
|
|
registry.labs.0x.no/env \n\
|
|
|
|
$@\
|
|
|
|
"
|
|
|
|
|
|
|
|
echo
|
|
|
|
echo "Running: $cmd"
|
|
|
|
echo
|
|
|
|
|
|
|
|
`echo $cmd`
|
2018-04-01 21:36:34 +08:00
|
|
|
|