diff --git a/.github/workflows/build_iso.yml b/.github/workflows/build_iso.yml index be8c3ff..d6337e5 100644 --- a/.github/workflows/build_iso.yml +++ b/.github/workflows/build_iso.yml @@ -38,26 +38,20 @@ jobs: cd aports/scripts/ ./mkimage.sh \ - --tag ${version} \ + --tag ${version}-$(date +%y%m%d) \ --arch x86_64 \ --profile docker \ --outdir ../../ \ --repository https://dl-cdn.alpinelinux.org/alpine/v${version}/main \ --repository https://dl-cdn.alpinelinux.org/alpine/v${version}/community - - name: Change ISO name - run: | - date=$(date +%y%m%d) - for file in *.iso; do - if [[ -f "$file" ]]; then - filename="$file" - ver=$(echo "$filename" | grep -oE '[0-9]+\.[0-9]+') - if [ -n "$ver" ]; then - new_filename=$(echo "$filename" | sed "s/$ver/$ver-$date/") - mv "$filename" "$new_filename" - fi - fi - done + ./mkimage.sh \ + --tag ${version}-$(date +%y%m%d) \ + --arch x86_64 \ + --profile podman \ + --outdir ../../ \ + --repository https://dl-cdn.alpinelinux.org/alpine/v${version}/main \ + --repository https://dl-cdn.alpinelinux.org/alpine/v${version}/community - name: Upload ISO if: ${{ ! startsWith(github.ref, 'refs/tags/v') }} diff --git a/README.md b/README.md index 5e43948..bcaa7a2 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # AlpDock -Alpine Linux with docker preinstalled (Live Image) +Alpine Linux with `docker` and `podman` preinstalled (Live Images) -AlpDock includes only minimum amount of software needed to run Docker and SSH server. +AlpDock includes only minimum amount of software needed to run Docker, Podman and SSH server. ### Root account The root account does not have a password. To set it, type `passwd`. diff --git a/genapkovl-podman.sh b/genapkovl-podman.sh new file mode 100644 index 0000000..557d322 --- /dev/null +++ b/genapkovl-podman.sh @@ -0,0 +1,123 @@ +#!/bin/sh -e + +version="3.21" + +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 +makefile root:root 0644 "$tmp"/etc/hostname < /etc/sudoers.d/\$user && chmod 0440 /etc/sudoers.d/\$user +# Podman rootless support +modprobe tun +echo tun >> /etc/modules +echo \$user:100000:65536 >> /etc/subuid +echo \$user:100000:65536 >> /etc/subgid +EOF + +mkdir -p "$tmp"/usr/bin +makefile root:root 0755 "$tmp"/usr/bin/alpdock-run-portainer < $HOSTNAME.apkovl.tar.gz diff --git a/mkimg.podman.sh b/mkimg.podman.sh new file mode 100644 index 0000000..a76d72f --- /dev/null +++ b/mkimg.podman.sh @@ -0,0 +1,15 @@ +profile_podman() { + title="Podman" + desc="Alpine with docker, SSH and other utils preinstalled." + profile_base + profile_abbrev="podman" + image_ext="iso" + arch="aarch64 x86 x86_64 ppc64le riscv64 s390x" + output_format="iso" + kernel_addons="xtables-addons" + apks="$apks \ + podman \ + bash-completion procps util-linux readline findutils sed coreutils sudo e2fsprogs lvm2" + apkovl="genapkovl-podman.sh" + hostname="alpdock" +}