Note Images published in this repo are covered by macOS EULA and are only intended to be run on Apple hardware.
- MacOS Catalina or newer
- Disable System Identity Protection.
SIP doesn't allow to
chroot
(not needed for building though).
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"
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.