auto-scripts/auto-alpine-sandbox


Home Back
#!/usr/bin/env bash

ARCH="x86_64"
ALPINE_VER="3.24"
ALPINE_SUB_VER="2"
USER_ID=$(id -u)
HOME_IN_CHROOT="/home/user"


PROJECT_NAME=$1
mkdir -p $PROJECT_NAME/ctr
cd $PROJECT_NAME/ctr

curl -L https://dl-cdn.alpinelinux.org/alpine/v$ALPINE_VER/releases/$ARCH/alpine-minirootfs-$ALPINE_VER.$ALPINE_SUB_VER-$ARCH.tar.gz -o alpine.tar.gz
tar xzf alpine.tar.gz
rm alpine.tar.gz

cd ..

mkdir -p "./ctr/run/user/$USER_ID"

echo "#!/usr/bin/env bash
xhost +
bwrap \
  --die-with-parent \
  --unshare-pid \
  --unshare-user \
  --uid "$USER_ID" \
  --bind ./ctr / \
  --bind "/run/user/$USER_ID" "/run/user/$USER_ID" \
  --setenv HOME $HOME_IN_CHROOT \
  --setenv XDG_RUNTIME_DIR "/run/user/$USER_ID" \
  --setenv PULSE_SERVER "unix:/run/user/$USER_ID/pulse/native" \
  --dev-bind /dev/snd /dev/snd \
  --dev /dev \
  --proc /proc \
  --tmpfs /tmp \
  --ro-bind /etc/resolv.conf /etc/resolv.conf \
  "\$1" 
" > run_sandbox.sh



echo "#!/bin/sh
/sbin/apk update
/sbin/apk add pulseaudio-utils pipewire-pulse alsa-utils fontconfig font-noto font-dejavu
/bin/touch  "/run/user/$USER_ID/pipewire-0"
"> ./ctr/usr/local/bin/setup_sandbox.sh
chmod +x ./ctr/usr/local/bin/setup_sandbox.sh

cat > shell.sh <<'EOF'
#!/bin/sh
exec ./run_sandbox.sh "/bin/ash -l"
EOF


chmod +x *.sh

./run_sandbox.sh /usr/local/bin/setup_sandbox.sh
cd ..

Powered by Code, a simple repository browser by Fabio Di Matteo