Created
November 30, 2018 18:03
-
-
Save bzub/9323bd58894609a10058229d1217dc60 to your computer and use it in GitHub Desktop.
IWD/DBUS OCI container build script using pacstrap (Arch Linux)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env sh | |
set -e | |
set -x | |
# Boilerplate setup | |
alias buildah="sudo buildah" | |
container="$(buildah from scratch)" | |
alias run="buildah run ${container}" | |
alias copy="buildah copy ${container}" | |
alias add="buildah add ${container}" | |
config() { | |
buildah config "$@" "${container}" | |
} | |
# Only build with a clean environment | |
if [ -d rootfs ]; then | |
echo "ERROR: rootfs directory exists. Delete before building." | |
exit 1 | |
fi | |
# Initialize Archlinux rootfs | |
mkdir rootfs | |
# Install software | |
sudo pacstrap -c rootfs -d -d --needed libsystemd expat glibc dbus iwd \ | |
xz lz4 libgcrypt libgpg-error filesystem | |
echo 'dbus:x:81:81:System Message Bus:/:/sbin/nologin' | \ | |
sudo tee -a rootfs/etc/passwd | |
sudo mkdir -p rootfs/run/dbus | |
sudo mkdir -p rootfs/var/lib/iwd | |
sudo mkdir -p rootfs/usr/local/bin | |
# Build run.go and populate container | |
go build run.go | |
sudo tar -cvf rootfs.tar -C rootfs . | |
add rootfs.tar | |
copy run /usr/local/bin | |
# Configure image | |
config --author="bzub" | |
config --os="linux" | |
config --volume="/run/dbus" | |
config --volume="/var/lib/iwd" | |
config --workingdir="/" | |
config --entrypoint='["/usr/local/bin/run"]' | |
config --cmd= | |
# Create image | |
buildah commit "${container}" agamigo.io/oci/iwd:latest | |
# Cleanup | |
sudo rm -rf rootfs | |
rm rootfs.tar |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment