#!/bin/sh -e HOSTNAME="$1" if [ -z "$HOSTNAME" ]; then echo "usage: $0 hostname" exit 1 fi cleanup() { rm -rf "$tmp" } makefile() { OWNER="$1" PERMS="$2" FILENAME="$3" cat > "$FILENAME" chown "$OWNER" "$FILENAME" chmod "$PERMS" "$FILENAME" } rc_add() { mkdir -p "$tmp"/etc/runlevels/"$2" ln -sf /etc/init.d/"$1" "$tmp"/etc/runlevels/"$2"/"$1" } tmp="$(mktemp -d)" trap cleanup EXIT mkdir -p "$tmp"/etc/apk makefile root:root 0644 "$tmp"/etc/apk/world < /home/user/.ssh/authorized_keys chown -R user:user /home/user/.ssh chmod 700 /home/user/.ssh chmod 600 /home/user/.ssh/authorized_keys # Move containers into home dir mkdir -p /home/user/.local/share mv /etc/container-data /home/user/.local/share/containers chown -R user:user /home/user/.local # Allow podman containers to run echo "user:100000:65536" >> /etc/subuid echo "user:100000:65536" >> /etc/subgid } EOF # Fix permissions and add containers to /etc/container-data, temporarily for WEIRD_FILE in $(find /home/user/.local/share/containers -perm 000); do chmod 600 $WEIRD_FILE done cp -r /home/user/.local/share/containers "$tmp"/etc/container-data # Start cgroups, required by podman rc_add cgroups boot # Start sshd rc_add sshd boot # Run setup-alpine rc_add dangerzone boot rc_add devfs sysinit rc_add dmesg sysinit rc_add mdev sysinit rc_add hwdrivers sysinit rc_add modloop sysinit rc_add hwclock boot rc_add modules boot rc_add sysctl boot rc_add hostname boot rc_add bootmisc boot rc_add syslog boot rc_add mount-ro shutdown rc_add killprocs shutdown rc_add savecache shutdown tar -c -C "$tmp" etc | gzip -9n > $HOSTNAME.apkovl.tar.gz