diff --git a/root/etc/s6-overlay/s6-rc.d/init-mod-universal-docker-in-docker-add-package/dependencies.d/init-mods b/root/etc/s6-overlay/s6-rc.d/init-mod-universal-docker-in-docker-add-package/dependencies.d/init-mods new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/s6-overlay/s6-rc.d/init-mod-universal-docker-in-docker-add-package/run b/root/etc/s6-overlay/s6-rc.d/init-mod-universal-docker-in-docker-add-package/run new file mode 100755 index 0000000..ed9e19a --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-mod-universal-docker-in-docker-add-package/run @@ -0,0 +1,56 @@ +#!/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 + echo "**** Adding docker-in-docker dependency packages to install list ****" + echo "\ + btrfs-progs \ + ca-certificates \ + curl \ + e2fsprogs \ + iptables \ + openssh-client \ + openssl \ + pigz \ + xfsprogs \ + xz-utils" >> /mod-repo-packages-to-install.list +else + echo "**** Adding docker-in-docker dependency packages to install list ****" + echo "\ + btrfs-progs \ + curl \ + e2fsprogs \ + e2fsprogs-extra \ + ip6tables \ + iptables \ + openssl \ + pigz \ + xfsprogs \ + xz" >> /mod-repo-packages-to-install.list +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-add-package/type b/root/etc/s6-overlay/s6-rc.d/init-mod-universal-docker-in-docker-add-package/type new file mode 100644 index 0000000..3d92b15 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-mod-universal-docker-in-docker-add-package/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-add-package/up b/root/etc/s6-overlay/s6-rc.d/init-mod-universal-docker-in-docker-add-package/up new file mode 100644 index 0000000..4dc82dd --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-mod-universal-docker-in-docker-add-package/up @@ -0,0 +1 @@ +/etc/s6-overlay/s6-rc.d/init-mod-universal-docker-in-docker-add-package/run \ No newline at end of file diff --git a/root/etc/s6-overlay/s6-rc.d/init-mods-package-install/dependencies.d/init-mod-universal-docker-in-docker-add-package b/root/etc/s6-overlay/s6-rc.d/init-mods-package-install/dependencies.d/init-mod-universal-docker-in-docker-add-package new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/s6-overlay/s6-rc.d/svc-mod-universal-docker-in-docker-log/consumer-for b/root/etc/s6-overlay/s6-rc.d/svc-mod-universal-docker-in-docker-log/consumer-for new file mode 100644 index 0000000..d9430bd --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/svc-mod-universal-docker-in-docker-log/consumer-for @@ -0,0 +1 @@ +svc-mod-universal-docker-in-docker \ No newline at end of file diff --git a/root/etc/s6-overlay/s6-rc.d/svc-mod-universal-docker-in-docker-log/dependencies.d/init-services b/root/etc/s6-overlay/s6-rc.d/svc-mod-universal-docker-in-docker-log/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/pipeline-name b/root/etc/s6-overlay/s6-rc.d/svc-mod-universal-docker-in-docker-log/pipeline-name new file mode 100644 index 0000000..d80cdad --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/svc-mod-universal-docker-in-docker-log/pipeline-name @@ -0,0 +1 @@ +mod-universal-docker-in-docker-pipeline \ No newline at end of file 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-log/type b/root/etc/s6-overlay/s6-rc.d/svc-mod-universal-docker-in-docker-log/type new file mode 100644 index 0000000..1780f9f --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/svc-mod-universal-docker-in-docker-log/type @@ -0,0 +1 @@ +longrun \ No newline at end of file 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/producer-for b/root/etc/s6-overlay/s6-rc.d/svc-mod-universal-docker-in-docker/producer-for new file mode 100644 index 0000000..a80969e --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/svc-mod-universal-docker-in-docker/producer-for @@ -0,0 +1 @@ +svc-mod-universal-docker-in-docker-log \ No newline at end of file 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-universal-docker-in-docker-add-package b/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-mod-universal-docker-in-docker-add-package new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/s6-overlay/s6-rc.d/user/contents.d/mod-universal-docker-in-docker-pipeline b/root/etc/s6-overlay/s6-rc.d/user/contents.d/mod-universal-docker-in-docker-pipeline 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