mirror of
https://github.com/Mexit/AlpDock.git
synced 2025-04-26 15:59:53 +03:00
Add iso with podman
This commit is contained in:
parent
e055216863
commit
3c7192f3fb
4 changed files with 148 additions and 16 deletions
22
.github/workflows/build_iso.yml
vendored
22
.github/workflows/build_iso.yml
vendored
|
@ -38,26 +38,20 @@ jobs:
|
||||||
cd aports/scripts/
|
cd aports/scripts/
|
||||||
|
|
||||||
./mkimage.sh \
|
./mkimage.sh \
|
||||||
--tag ${version} \
|
--tag ${version}-$(date +%y%m%d) \
|
||||||
--arch x86_64 \
|
--arch x86_64 \
|
||||||
--profile docker \
|
--profile docker \
|
||||||
--outdir ../../ \
|
--outdir ../../ \
|
||||||
--repository https://dl-cdn.alpinelinux.org/alpine/v${version}/main \
|
--repository https://dl-cdn.alpinelinux.org/alpine/v${version}/main \
|
||||||
--repository https://dl-cdn.alpinelinux.org/alpine/v${version}/community
|
--repository https://dl-cdn.alpinelinux.org/alpine/v${version}/community
|
||||||
|
|
||||||
- name: Change ISO name
|
./mkimage.sh \
|
||||||
run: |
|
--tag ${version}-$(date +%y%m%d) \
|
||||||
date=$(date +%y%m%d)
|
--arch x86_64 \
|
||||||
for file in *.iso; do
|
--profile podman \
|
||||||
if [[ -f "$file" ]]; then
|
--outdir ../../ \
|
||||||
filename="$file"
|
--repository https://dl-cdn.alpinelinux.org/alpine/v${version}/main \
|
||||||
ver=$(echo "$filename" | grep -oE '[0-9]+\.[0-9]+')
|
--repository https://dl-cdn.alpinelinux.org/alpine/v${version}/community
|
||||||
if [ -n "$ver" ]; then
|
|
||||||
new_filename=$(echo "$filename" | sed "s/$ver/$ver-$date/")
|
|
||||||
mv "$filename" "$new_filename"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
- name: Upload ISO
|
- name: Upload ISO
|
||||||
if: ${{ ! startsWith(github.ref, 'refs/tags/v') }}
|
if: ${{ ! startsWith(github.ref, 'refs/tags/v') }}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
# AlpDock
|
# 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
|
### Root account
|
||||||
The root account does not have a password. To set it, type `passwd`.
|
The root account does not have a password. To set it, type `passwd`.
|
||||||
|
|
123
genapkovl-podman.sh
Normal file
123
genapkovl-podman.sh
Normal file
|
@ -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 <<EOF
|
||||||
|
$HOSTNAME
|
||||||
|
EOF
|
||||||
|
|
||||||
|
mkdir -p "$tmp"/etc/network
|
||||||
|
makefile root:root 0644 "$tmp"/etc/network/interfaces <<EOF
|
||||||
|
auto lo
|
||||||
|
iface lo inet loopback
|
||||||
|
|
||||||
|
auto eth0
|
||||||
|
iface eth0 inet dhcp
|
||||||
|
EOF
|
||||||
|
|
||||||
|
mkdir -p "$tmp"/etc/apk
|
||||||
|
makefile root:root 0644 "$tmp"/etc/apk/world <<EOF
|
||||||
|
alpine-base
|
||||||
|
bash-completion
|
||||||
|
coreutils
|
||||||
|
podman
|
||||||
|
findutils
|
||||||
|
openssh
|
||||||
|
procps
|
||||||
|
readline
|
||||||
|
sed
|
||||||
|
sudo
|
||||||
|
util-linux
|
||||||
|
EOF
|
||||||
|
|
||||||
|
makefile root:root 0644 "$tmp"/etc/apk/repositories <<EOF
|
||||||
|
https://dl-cdn.alpinelinux.org/alpine/v${version}/main
|
||||||
|
https://dl-cdn.alpinelinux.org/alpine/v${version}/community
|
||||||
|
EOF
|
||||||
|
|
||||||
|
mkdir -p "$tmp"/etc/local.d
|
||||||
|
makefile root:root 0744 "$tmp"/etc/local.d/set_bash.start <<EOF
|
||||||
|
#!/bin/ash
|
||||||
|
sed -i 's|root:/bin/ash|root:/bin/bash|' /etc/passwd
|
||||||
|
EOF
|
||||||
|
|
||||||
|
makefile root:root 0744 "$tmp"/etc/local.d/add_user.start <<EOF
|
||||||
|
#!/bin/ash
|
||||||
|
user="linux"
|
||||||
|
echo -e "\$user\n\$user" | adduser \$user -s /bin/bash
|
||||||
|
mkdir /etc/sudoers.d
|
||||||
|
echo "\$user ALL=(ALL) ALL" > /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 <<EOF
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
podman volume create portainer_data
|
||||||
|
podman run \
|
||||||
|
--detach \
|
||||||
|
--volume=/var/run/podman/podman.sock:/var/run/docker.sock \
|
||||||
|
--volume=portainer_data:/data \
|
||||||
|
--publish=8000:8000 \
|
||||||
|
--publish=9443:9443 \
|
||||||
|
--restart=always \
|
||||||
|
--name=portainer \
|
||||||
|
portainer/portainer-ce:latest
|
||||||
|
EOF
|
||||||
|
|
||||||
|
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 networking boot
|
||||||
|
rc_add local boot
|
||||||
|
|
||||||
|
rc_add podman default
|
||||||
|
rc_add sshd default
|
||||||
|
|
||||||
|
rc_add mount-ro shutdown
|
||||||
|
rc_add killprocs shutdown
|
||||||
|
rc_add savecache shutdown
|
||||||
|
|
||||||
|
tar -c -C "$tmp" etc usr| gzip -9n > $HOSTNAME.apkovl.tar.gz
|
15
mkimg.podman.sh
Normal file
15
mkimg.podman.sh
Normal file
|
@ -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"
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue