/macos-jail

Chroot jail for macOS

Primary LanguagePythonMIT LicenseMIT

macos-jail

Build Status

Note Images published in this repo are covered by macOS EULA and are only intended to be run on Apple hardware.

Prerequisites

Usage

cd "$repo_root"
sudo python3 -m macosjail "$jail_dir" # prepare chroot dir contents
sudo chroot "$jail_dir" # enter chroot

In order to make DNS work in chroot, run:

sudo mkdir -p "$jail_dir/var/run"
sudo link -f /var/run/mDNSResponder "$jail_dir/var/run/mDNSResponder"

Uploading macOS rootfs as Docker image

brew install crane

# You might first need to authenticate using
# sudo crane auth login "$registry" -u "$username" -p "$password"

sudo bash -c 'crane append --oci-empty-base --platform darwin -t "$image_tag" -f <(tar -f - -c -C "$jail_dir" .)'

If you want to run macOS image in containerd, see rund project.