diff options
| author | name <[email protected]> | 2020-06-04 18:31:47 +0000 |
|---|---|---|
| committer | name <[email protected]> | 2020-06-04 18:31:47 +0000 |
| commit | 15bf6f26be1ce89cf41ae253479c612aa75610c8 (patch) | |
| tree | 4e2f58ff06b737d770da3a4a31bda63deef18070 | |
| parent | Initial commit (diff) | |
| download | docker-osx-15bf6f26be1ce89cf41ae253479c612aa75610c8.tar.xz docker-osx-15bf6f26be1ce89cf41ae253479c612aa75610c8.zip | |
Docker-OSX!
| -rw-r--r-- | Dockerfile | 94 | ||||
| -rw-r--r-- | README.md | 42 | ||||
| -rw-r--r-- | running-mac-inside-docker-qemu.png | bin | 0 -> 373225 bytes |
3 files changed, 135 insertions, 1 deletions
diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..29f968f --- /dev/null +++ b/Dockerfile @@ -0,0 +1,94 @@ +#/usr/bin/docker +# ____ __ ____ ______ __ +# / __ \____ _____/ /_____ _____/ __ \/ ___/ |/ / +# / / / / __ \/ ___/ //_/ _ \/ ___/ / / /\__ \| / +# / /_/ / /_/ / /__/ ,< / __/ / / /_/ /___/ / | +# /_____/\____/\___/_/|_|\___/_/ \____//____/_/|_| +# +# Title: Mac on Docker (Docker-OSX) +# Author: Sick.Codes https://sick.codes/ +# Credits: Kholia https://github.com/kholia/osx-kvm +# Version: 1.0 +# License: GPLv3 +# +# All credits for OpenCore support go to https://github.com/Leoyzen/KVM-Opencore and +# https://github.com/thenickdude/KVM-Opencore/. Thanks! +# +# This Dockerfile automates the installation of Docker-OSX +# It will build a 32GB Mojave Disk, you can change the size using build arguments. +# This file builds on top of the work done by Dhiru Kholia and many others. +# +# Build: +# +# docker build -t docker-osx . +# +# docker build -t docker-osx --build-arg VERSION=10.14.6 --build-arg SIZE=200G +# +# Run: +# +# docker run --privileged -v /tmp/.X11-unix:/tmp/.X11-unix docker-osx +# + +FROM archlinux:latest + +MAINTAINER 'https://sick.codes' <https://sick.codes> + +# change disk size here or add during build, e.g. --build-arg VERSION=10.14.6 --build-arg SIZE=50G +ARG SIZE=32G +ARG VERSION=10.14.6 + +RUN [[ $(egrep -c '(svm|vmx)' /proc/cpuinfo) -gt 0 ]] || { echo KVM not possible on this host && exit 1; } + +WORKDIR /root +RUN tee -a /etc/pacman.conf <<< '[community-testing]' +RUN tee -a /etc/pacman.conf <<< 'Include = /etc/pacman.d/mirrorlist' + +RUN pacman -Syu --noconfirm +RUN pacman -S sudo git make automake gcc python go autoconf cmake pkgconf alsa-utils fakeroot --noconfirm +RUN useradd arch +RUN echo 'arch ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers +RUN mkdir /home/arch +RUN chown arch:arch /home/arch + +USER arch +WORKDIR /home/arch +RUN git clone https://aur.archlinux.org/yay.git +WORKDIR /home/arch/yay +RUN makepkg -si --noconfirm + +WORKDIR /home/arch +RUN git clone https://github.com/corpnewt/gibMacOS.git +WORKDIR /home/arch/gibMacOS +RUN perl -p -i -e 's/print("Succeeded:")/exit()/' ./gibMacOS.command + +# this command takes a while! +RUN python gibMacOS.command -v "${VERSION}" || echo Done + +RUN sudo pacman -S qemu libvirt dnsmasq virt-manager bridge-utils flex bison ebtables edk2-ovmf --noconfirm +RUN sudo systemctl enable libvirtd.service +RUN sudo systemctl enable virtlogd.service + +WORKDIR /home/arch +RUN git clone https://github.com/kholia/OSX-KVM.git + +RUN sudo pacman -Syu netctl libvirt-dbus libguestfs --noconfirm + +WORKDIR /home/arch/OSX-KVM +RUN sed -i -e 's/usb-mouse/usb-tablet/g' OpenCore-Boot.sh +RUN chmod +x OpenCore-Boot.sh + +WORKDIR /home/arch/OSX-KVM +RUN qemu-img convert ${HOME}/gibMacOS/macOS\ Downloads/publicrelease/*/BaseSystem.dmg -O raw ${HOME}/OSX-KVM/BaseSystem.img +RUN qemu-img create -f qcow2 mac_hdd_ng.img "${SIZE}" + +RUN perl -p -i -e \ +'s/-netdev tap,id=net0,ifname=tap0,script=no,downscript=no -device vmxnet3,netdev=net0,id=net0,mac=52:54:00:c9:18:27/-netdev user,id=net0 -device vmxnet3,netdev=net0,id=net0,mac=52:54:00:09:49:17/' \ +./OpenCore-Boot.sh + +ENV DISPLAY :0.0 +ENV USER arch +USER arch +VOLUME ["/tmp/.X11-unix"] + +CMD ./OpenCore-Boot.sh + @@ -1,2 +1,42 @@ # Docker-OSX -Mac in Docker! Run near native OSX-KVM in Docker! X11 Forwarding! + + + +Run Mac in a Docker container! Run near native OSX-KVM in Docker! X11 Forwarding! + +Author: Sick.Codes https://sick.codes/ +Credits: OSX-KVM project among many others: https://github.com/kholia/OSX-KVM/blob/master/CREDITS.md + +``` +docker run --privileged -v /tmp/.X11-unix:/tmp/.X11-unix sickcodes/docker-osx:latest +``` + +# Instant OSX-KVM in a BOX! +This Dockerfile automates the installation of OSX-KVM inside a docker container. + +It will build a 32GB Mojave Disk. + +You can change the size and version using build arguments (see below). + +This file builds on top of the work done by Dhiru Kholia and many others on the OSX-KVM project. + + +# Custom Build +``` + +git clone https://github.com/sickcodes/Docker-OSX.git + +cd Docker-OSX + +docker build -t docker-osx:latest \ +--build-arg VERSION=10.14.6 \ +--build-arg SIZE=200G + +docker run --privileged -v /tmp/.X11-unix:/tmp/.X11-unix sickcodes/docker-osx:latest + +``` + +## Todo: +``` +# persistent disk with least amount of pre-build errands. +```
\ No newline at end of file diff --git a/running-mac-inside-docker-qemu.png b/running-mac-inside-docker-qemu.png Binary files differnew file mode 100644 index 0000000..dfa2023 --- /dev/null +++ b/running-mac-inside-docker-qemu.png |