diff options
Diffstat (limited to 'scripts')
| -rwxr-xr-x | scripts/docker-install.bash | 37 | ||||
| -rwxr-xr-x | scripts/docker.bash | 28 |
2 files changed, 50 insertions, 15 deletions
diff --git a/scripts/docker-install.bash b/scripts/docker-install.bash new file mode 100755 index 0000000..779ebbf --- /dev/null +++ b/scripts/docker-install.bash @@ -0,0 +1,37 @@ +#!/usr/bin/env bash + +set -e +set -o pipefail + +if (( $# != 1 )); then + echo "usage: docker-install.bash UID" >&2 + exit 1 +fi + +uid="$1" + +packages=" + +# needed to run build system +make + +# needed for 'make help' +bsdmainutils + +# for checking diffs if you want +git + +# just in case we want root +sudo + +" + +export DEBIAN_FRONTEND=noninteractive +apt-get update +apt-get install -y $(grep -v "^#" <<< "$packages") +rm -rf /var/lib/apt/lists/* + +useradd --uid="$uid" --create-home --groups sudo docker +passwd -d docker + +rm "$0" diff --git a/scripts/docker.bash b/scripts/docker.bash index d9000b2..d33e680 100755 --- a/scripts/docker.bash +++ b/scripts/docker.bash @@ -3,11 +3,16 @@ set -e set -o pipefail -if [[ -z "$1" ]]; then - echo "docker.sh: no tag provided" 1>&2 +if [[ -n "$1" && "$1" != master && ! "$1" =~ [0-9]+\.[0-9]+ ]]; then + echo "docker.bash: malformed tag: $1" >&2 exit 1 -else - tag="$1" +fi + +tag="${1:-latest}" + +args=(bash) +if [[ -n "$2" ]]; then + args=("${args[@]}" -c "$2") fi docker() { @@ -18,15 +23,8 @@ docker() { fi } -script="$(cat <<"EOF" - -apt-get update -apt-get install -y bsdmainutils make -cd /src -make help -exec bash - -EOF -)" +docker build . -t "apheleia:$tag" \ + --build-arg "UID=$UID" \ + --build-arg "VERSION=$tag" -docker run -it --rm -v "$PWD:/src" silex/emacs:"$tag" bash -c "$script" +docker run -it --rm -v "$PWD:/home/docker/src" "apheleia:$tag" "${args[@]}" |
