aboutsummaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/docker-install.bash37
-rwxr-xr-xscripts/docker.bash28
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[@]}"