diff --git a/root/etc/s6-overlay/s6-rc.d/init-mod-apt-get/dependencies.d/init-mods b/root/etc/s6-overlay/s6-rc.d/init-mod-apt-get/dependencies.d/init-mods new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/s6-overlay/s6-rc.d/init-mod-apt-get/run b/root/etc/s6-overlay/s6-rc.d/init-mod-apt-get/run new file mode 100755 index 0000000..8e5fe66 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-mod-apt-get/run @@ -0,0 +1,5 @@ +#!/usr/bin/with-contenv bash + +if [ -f /usr/bin/apt ]; then + apt-get update +fi diff --git a/root/etc/s6-overlay/s6-rc.d/init-mod-apt-get/type b/root/etc/s6-overlay/s6-rc.d/init-mod-apt-get/type new file mode 100644 index 0000000..3d92b15 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-mod-apt-get/type @@ -0,0 +1 @@ +oneshot \ No newline at end of file diff --git a/root/etc/s6-overlay/s6-rc.d/init-mod-apt-get/up b/root/etc/s6-overlay/s6-rc.d/init-mod-apt-get/up new file mode 100644 index 0000000..c601d45 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-mod-apt-get/up @@ -0,0 +1 @@ +/etc/s6-overlay/s6-rc.d/init-mod-apt-get/run \ No newline at end of file diff --git a/root/etc/s6-overlay/s6-rc.d/init-mod-universal-docker-in-docker/dependencies.d/init-mod-apt-get b/root/etc/s6-overlay/s6-rc.d/init-mod-universal-docker-in-docker/dependencies.d/init-mod-apt-get new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/s6-overlay/s6-rc.d/init-mod-universal-docker-in-docker/run b/root/etc/s6-overlay/s6-rc.d/init-mod-universal-docker-in-docker/run new file mode 100755 index 0000000..e25712b --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-mod-universal-docker-in-docker/run @@ -0,0 +1,54 @@ +#!/usr/bin/with-contenv bash + +ABC_USER=$(id -nu ${PUID:-911}) +mkdir -p /config/{logs/dockerd,var/lib/docker} +chown -R ${ABC_USER}:${ABC_USER} /config/logs + +echo "**** installing docker and docker compose ****" +if [ -f /usr/bin/apt ]; then + apt-get install -y \ + btrfs-progs \ + ca-certificates \ + curl \ + e2fsprogs \ + iptables \ + openssh-client \ + openssl \ + pigz \ + xfsprogs \ + xz-utils +else + apk add --no-cache \ + btrfs-progs \ + curl \ + e2fsprogs \ + e2fsprogs-extra \ + ip6tables \ + iptables \ + openssl \ + pigz \ + xfsprogs \ + xz +fi +ARCH=$(uname -m) +if [ -d "/docker-tgz" ] ; then + echo "Copying over docker and docker-compose binaries" + mkdir -p /usr/local/lib/docker/cli-plugins + mv "/docker-tgz/docker-compose_${ARCH}" /usr/local/lib/docker/cli-plugins/docker-compose + mv "/docker-tgz/compose-switch_${ARCH}" /usr/local/bin/docker-compose + tar xf /docker-tgz/docker_${ARCH}.tgz \ + --strip-components=1 -C \ + /usr/local/bin/ + rm -rf /docker-tgz +else + echo "**** docker and docker-compose already installed, skipping ****" +fi + +# delete PID if exists +find /run /var/run -iname 'docker*.pid' -delete || : + +# create docker group and add abc to it +groupadd -f docker +if ! id -nG ${ABC_USER} | grep -q "docker"; then + usermod -aG docker ${ABC_USER} +fi diff --git a/root/etc/s6-overlay/s6-rc.d/init-mod-universal-docker-in-docker/type b/root/etc/s6-overlay/s6-rc.d/init-mod-universal-docker-in-docker/type new file mode 100644 index 0000000..3d92b15 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-mod-universal-docker-in-docker/type @@ -0,0 +1 @@ +oneshot \ No newline at end of file diff --git a/root/etc/s6-overlay/s6-rc.d/init-mod-universal-docker-in-docker/up b/root/etc/s6-overlay/s6-rc.d/init-mod-universal-docker-in-docker/up new file mode 100644 index 0000000..0c37875 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-mod-universal-docker-in-docker/up @@ -0,0 +1 @@ +/etc/s6-overlay/s6-rc.d/init-mod-universal-docker-in-docker/run \ No newline at end of file diff --git a/root/etc/s6-overlay/s6-rc.d/init-mods-end/dependencies.d/init-mod-apt-get b/root/etc/s6-overlay/s6-rc.d/init-mods-end/dependencies.d/init-mod-apt-get new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/s6-overlay/s6-rc.d/init-mods-end/dependencies.d/init-mod-universal-docker-in-docker b/root/etc/s6-overlay/s6-rc.d/init-mods-end/dependencies.d/init-mod-universal-docker-in-docker new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/s6-overlay/s6-rc.d/svc-mod-universal-docker-in-docker/dependencies.d/init-services b/root/etc/s6-overlay/s6-rc.d/svc-mod-universal-docker-in-docker/dependencies.d/init-services new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/s6-overlay/s6-rc.d/svc-mod-universal-docker-in-docker/log/run b/root/etc/s6-overlay/s6-rc.d/svc-mod-universal-docker-in-docker/log/run new file mode 100755 index 0000000..87978ab --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/svc-mod-universal-docker-in-docker/log/run @@ -0,0 +1,6 @@ +#!/usr/bin/with-contenv bash + +ABC_USER=$(id -nu ${PUID:-911}) + +exec \ + s6-setuidgid ${ABC_USER} s6-log n30 s10000000 S30000000 T !"gzip -nq9" /config/logs/dockerd diff --git a/root/etc/s6-overlay/s6-rc.d/svc-mod-universal-docker-in-docker/run b/root/etc/s6-overlay/s6-rc.d/svc-mod-universal-docker-in-docker/run new file mode 100755 index 0000000..072d05d --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/svc-mod-universal-docker-in-docker/run @@ -0,0 +1,27 @@ +#!/usr/bin/with-contenv bash + +## dind hack from https://github.com/moby/moby/blob/master/hack/dind +export container=docker +if [ -d /sys/kernel/security ] && ! mountpoint -q /sys/kernel/security; then + mount -t securityfs none /sys/kernel/security || { + echo 'Could not mount /sys/kernel/security.' + echo 'AppArmor detection and --privileged mode might break.' + } +fi +# Mount /tmp (conditionally) +if ! mountpoint -q /tmp; then + mount -t tmpfs none /tmp +fi +# cgroup v2: enable nesting +if [ -f /sys/fs/cgroup/cgroup.controllers ]; then + # move the init process (PID 1) from the root group to the /init group, + # otherwise writing subtree_control fails with EBUSY. + mkdir -p /sys/fs/cgroup/init + echo 1 > /sys/fs/cgroup/init/cgroup.procs + # enable controllers + sed -e 's/ / +/g' -e 's/^/+/' < /sys/fs/cgroup/cgroup.controllers \ + > /sys/fs/cgroup/cgroup.subtree_control +fi + +exec 2>&1 /usr/local/bin/dockerd \ + --data-root "/config/var/lib/docker" diff --git a/root/etc/s6-overlay/s6-rc.d/svc-mod-universal-docker-in-docker/type b/root/etc/s6-overlay/s6-rc.d/svc-mod-universal-docker-in-docker/type new file mode 100644 index 0000000..1780f9f --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/svc-mod-universal-docker-in-docker/type @@ -0,0 +1 @@ +longrun \ No newline at end of file diff --git a/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-mod-apt-get b/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-mod-apt-get new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-mod-universal-docker-in-docker b/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-mod-universal-docker-in-docker new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/s6-overlay/s6-rc.d/user/contents.d/svc-mod-universal-docker-in-docker b/root/etc/s6-overlay/s6-rc.d/user/contents.d/svc-mod-universal-docker-in-docker new file mode 100644 index 0000000..e69de29