1+ #! /bin/sh
2+ set -eu
3+
4+ #
5+ # MANUAL STEP: run on every fresh box at the console, as root, after 002-users.sh.
6+ #
7+ # What it does:
8+ # - installs Docker via the official get.docker.com script
9+ # - adds 'ansible' and 'containers' users to the docker group
10+ # - installs lazydocker from GitHub releases (arm64)
11+ #
12+ # After this finishes, log out and back in (or `newgrp docker`) so group
13+ # membership takes effect, then sanity-check with:
14+ # sudo -u containers docker run --rm hello-world
15+ #
16+
17+ # docker engine
18+ curl -fsSL https://get.docker.com | sh
19+
20+ # allow the workload + admin users to talk to the docker socket
21+ usermod -aG docker containers
22+ usermod -aG docker ansible
23+
24+ # lazydocker (not in apt — pull release tarball from GitHub)
25+ case " $( uname -m) " in
26+ x86_64) LAZYDOCKER_ARCH=x86_64 ;;
27+ aarch64) LAZYDOCKER_ARCH=arm64 ;;
28+ armv7l) LAZYDOCKER_ARCH=armv7 ;;
29+ * ) echo " unsupported arch: $( uname -m) " >&2 ; exit 1 ;;
30+ esac
31+ LAZYDOCKER_VERSION=$( curl -fsSL https://api.github.com/repos/jesseduffield/lazydocker/releases/latest \
32+ | grep -oE ' "tag_name":\s*"v[^"]+"' | head -n1 | sed -E ' s/.*"v([^"]+)".*/\1/' )
33+ TMPDIR=$( mktemp -d)
34+ curl -fsSL -o " ${TMPDIR} /lazydocker.tar.gz" \
35+ " https://github.com/jesseduffield/lazydocker/releases/download/v${LAZYDOCKER_VERSION} /lazydocker_${LAZYDOCKER_VERSION} _Linux_${LAZYDOCKER_ARCH} .tar.gz"
36+ tar -xzf " ${TMPDIR} /lazydocker.tar.gz" -C " ${TMPDIR} " lazydocker
37+ install -m 0755 " ${TMPDIR} /lazydocker" /usr/local/bin/lazydocker
38+ rm -rf " ${TMPDIR} "
39+
40+ echo
41+ echo " docker ready. log out + back in (or 'newgrp docker') before running docker as containers/ansible."
0 commit comments