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 /Dockerfile | |
| parent | Initial commit (diff) | |
| download | docker-osx-15bf6f26be1ce89cf41ae253479c612aa75610c8.tar.xz docker-osx-15bf6f26be1ce89cf41ae253479c612aa75610c8.zip | |
Docker-OSX!
Diffstat (limited to 'Dockerfile')
| -rw-r--r-- | Dockerfile | 94 |
1 files changed, 94 insertions, 0 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 + |