mirror of
https://github.com/sickcodes/Docker-OSX.git
synced 2024-12-22 05:51:32 -06:00
v2.7 Replace gibMacOS with fetch-macOS.py. Replace iptables with iptables-nft. Remove libguestfs.
This commit is contained in:
parent
05f9555664
commit
8d6d0359b1
@ -1,6 +1,6 @@
|
||||
|Version|Date|Notes|
|
||||
|---|---|---|
|
||||
|2.7|2021-01-05|Add rankmirrors.|
|
||||
|2.7|2021-01-05|Add rankmirrors. Remove gibMacOS. Replace iptables with iptables-nft. Remove libguestfs.|
|
||||
| |2020-12-17|Remove unnecessary WORKDIR commands.|
|
||||
| |2020-12-16|Reduce image size by cloning OSX-KVM to only 1 depth level. Simplify mkdir && chown to mkdir -m|
|
||||
| |2020-10-06|Add the ability to skip the boot screen with ./Launch-nopicker.sh|
|
||||
|
@ -41,3 +41,6 @@ These credits refer to the contributors to this repository:
|
||||
[@PeterDaveHello](https://github.com/PeterDaveHello) - Reduce Dockerfile instructions and Docker image layers #112
|
||||
|
||||
[@weskerfoot](https://github.com/weskerfoot) Docs updates: usb passthrough, headless mode, disk space reduction guide #113
|
||||
|
||||
[@PeterDaveHello](https://github.com/PeterDaveHello) - Improve Dockerfile #121
|
||||
|
||||
|
22
Dockerfile
22
Dockerfile
@ -8,7 +8,7 @@
|
||||
# Repo: https://github.com/sickcodes/Docker-OSX/
|
||||
# Title: Mac on Docker (Docker-OSX)
|
||||
# Author: Sick.Codes https://sick.codes/
|
||||
# Version: 2.6
|
||||
# Version: 2.7
|
||||
# License: GPLv3+
|
||||
#
|
||||
# All credits for OSX-KVM and the rest at @Kholia's repo: https://github.com/kholia/osx-kvm
|
||||
@ -133,20 +133,20 @@ RUN touch enable-ssh.sh \
|
||||
|
||||
# default env vars, RUNTIME ONLY, not for editing in build time.
|
||||
|
||||
RUN sudo pacman -Syu qemu libvirt dnsmasq virt-manager bridge-utils flex bison ebtables edk2-ovmf netctl libvirt-dbus libguestfs --noconfirm && yes | sudo pacman -Scc
|
||||
# RUN yes | sudo pacman -Syu qemu libvirt dnsmasq virt-manager bridge-utils edk2-ovmf netctl libvirt-dbus --overwrite --noconfirm
|
||||
|
||||
RUN yes | sudo pacman -Syu qemu libvirt dnsmasq virt-manager bridge-utils openresolv jack iptables-nft edk2-ovmf netctl libvirt-dbus --overwrite --noconfirm \
|
||||
; yes | sudo pacman -Scc
|
||||
|
||||
# RUN sudo systemctl enable libvirtd.service
|
||||
# RUN sudo systemctl enable virtlogd.service
|
||||
|
||||
RUN git clone --depth 1 https://github.com/corpnewt/gibMacOS.git /home/arch/OSX-KVM/gibMacOS
|
||||
WORKDIR /home/arch/OSX-KVM
|
||||
|
||||
WORKDIR /home/arch/OSX-KVM/gibMacOS
|
||||
|
||||
# this command takes a while!
|
||||
RUN perl -p -i -e 's/print("Succeeded:")/exit()/' ./gibMacOS.command \
|
||||
&& { python gibMacOS.command -v "${VERSION}" -d || echo Done; } \
|
||||
&& qemu-img convert /home/arch/OSX-KVM/gibMacOS/macOS\ Downloads/publicrelease/*/BaseSystem.dmg -O qcow2 -p -c /home/arch/OSX-KVM/BaseSystem.img \
|
||||
&& qemu-img create -f qcow2 /home/arch/OSX-KVM/mac_hdd_ng.img "${SIZE}" \
|
||||
&& rm /home/arch/OSX-KVM/gibMacOS/macOS\ Downloads/publicrelease/*/BaseSystem.dmg
|
||||
RUN python fetch-macOS.py --version "${VERSION}" \
|
||||
&& qemu-img convert BaseSystem.dmg -O qcow2 -p -c BaseSystem.img \
|
||||
&& qemu-img create -f qcow2 mac_hdd_ng.img "${SIZE}" \
|
||||
&& rm -f BaseSystem.dmg
|
||||
|
||||
# > Launch.sh
|
||||
# > Docker-OSX.xml
|
||||
|
61
README.md
61
README.md
@ -1,19 +1,6 @@
|
||||
# Docker-OSX
|
||||
## [Follow @sickcodes on Twitter](https://twitter.com/sickcodes)
|
||||
|
||||
### V2.6
|
||||
# Features In Docker-OSX v2.6
|
||||
- CI/CD weaponization thru vnc and xdotool
|
||||
- OSX-KVM
|
||||
- X11 Forwarding
|
||||
- SSH on localhost:50922
|
||||
- QEMU
|
||||
- VNC on localhost:8888 [vnc version is inside a separate directory](https://github.com/sickcodes/Docker-OSX/blob/master/vnc-version/Dockerfile)
|
||||
- Create an ARMY using `docker commit`
|
||||
- XFVB HEADLESS (use vnc)
|
||||
|
||||
### Pull Requests Welcome!
|
||||
|
||||
![Running mac osx in a docker container](/running-mac-inside-docker-qemu.png?raw=true "OSX KVM DOCKER")
|
||||
|
||||
Run Mac in a Docker container! Run near native OSX-KVM in Docker! X11 Forwarding!
|
||||
@ -22,12 +9,44 @@ Author: Sick.Codes https://sick.codes/ & https://twitter.com/sickcodes
|
||||
|
||||
PR & Contributor Credits: https://github.com/sickcodes/Docker-OSX/blob/master/CREDITS.md
|
||||
|
||||
Docker Hub: https://hub.docker.com/r/sickcodes/docker-osx
|
||||
|
||||
# Quick Start Docker-OSX
|
||||
```bash
|
||||
|
||||
docker run \
|
||||
--device /dev/kvm \
|
||||
-p 50922:10022 \
|
||||
-v /tmp/.X11-unix:/tmp/.X11-unix \
|
||||
-e "DISPLAY=${DISPLAY:-:0.0}" \
|
||||
sickcodes/docker-osx:latest
|
||||
|
||||
# Wait 2-3 minutes until you see the logo.
|
||||
|
||||
```
|
||||
|
||||
# Features Coming in v3.0
|
||||
- Fully automated installation.
|
||||
- Ready-to-go instances.
|
||||
|
||||
# Features In Docker-OSX v2.7
|
||||
- CI/CD weaponization thru vnc and xdotool
|
||||
- OSX-KVM
|
||||
- X11 Forwarding
|
||||
- SSH on localhost:50922
|
||||
- QEMU
|
||||
- VNC on localhost:8888 [vnc version is inside a separate directory](https://github.com/sickcodes/Docker-OSX/blob/master/vnc-version/Dockerfile)
|
||||
- Create an ARMY using `docker commit`
|
||||
- XFVB HEADLESS (use vnc)
|
||||
|
||||
### All Pull Requests Welcome!
|
||||
|
||||
Docker-OSX is a GPLv3+ Dockerfile and we need contributors just like you :).
|
||||
|
||||
Upstream: https://github.com/kholia/OSX-KVM && the great guy [@kholia](https://twitter.com/kholia)
|
||||
|
||||
Upstream Credits (OSX-KVM project) among many others: https://github.com/kholia/OSX-KVM/blob/master/CREDITS.md
|
||||
|
||||
Docker Hub: https://hub.docker.com/r/sickcodes/docker-osx
|
||||
|
||||
### Other cool Docker-QEMU based projects:
|
||||
|
||||
[Run iOS in a Docker with Docker-eyeOS](https://github.com/sickcodes/Docker-eyeOS) - [https://github.com/sickcodes/Docker-eyeOS](https://github.com/sickcodes/Docker-eyeOS)
|
||||
@ -432,13 +451,19 @@ Note: `-disable-ticketing` will allow unauthenticated access to the VM. See the
|
||||
Then simply do `remote-viewer spice://localhost:3001` and add `--spice-debug` for debugging.
|
||||
|
||||
|
||||
# Custom Build or Local Development
|
||||
|
||||
If you are building Docker-OSX locally, you will want to use Arch Linux mirrors.
|
||||
|
||||
Mirror locations can be found here (use 2 letter country codes): https://archlinux.org/mirrorlist/all/
|
||||
|
||||
# Custom Build
|
||||
```bash
|
||||
docker build -t docker-osx:latest \
|
||||
--build-arg VERSION=10.14.6 \
|
||||
--build-arg SIZE=200G
|
||||
--build-arg RANKMIRRORS=yes \
|
||||
--build-arg MIRROR_COUNTRY=US \
|
||||
--build-arg MIRROR_COUNT=10 \
|
||||
--build-arg VERSION=10.15.6 \
|
||||
--build-arg SIZE=200G .
|
||||
```
|
||||
|
||||
# Custom QEMU Arguments (passthrough devices)
|
||||
|
@ -7,7 +7,7 @@
|
||||
#
|
||||
# Title: Mac on Docker (Docker-OSX) [VNC EDITION]
|
||||
# Author: Sick.Codes https://sick.codes/
|
||||
# Version: 2.6
|
||||
# Version: 2.7
|
||||
# License: GPLv3+
|
||||
#
|
||||
# All credits for OSX-KVM and the rest at Kholia's repo: https://github.com/kholia/osx-kvm
|
||||
@ -72,14 +72,21 @@ MAINTAINER 'https://twitter.com/sickcodes' <https://sick.codes>
|
||||
|
||||
USER root
|
||||
|
||||
RUN tee -a /etc/pacman.d/mirrorlist <<< 'Server = http://mirrors.evowise.com/archlinux/$repo/os/$arch' \
|
||||
&& tee -a /etc/pacman.d/mirrorlist <<< 'Server = http://mirror.rackspace.com/archlinux/$repo/os/$arch' \
|
||||
&& tee -a /etc/pacman.d/mirrorlist <<< 'Server = https://mirror.rackspace.com/archlinux/$repo/os/$arch'
|
||||
ARG RANKMIRRORS=no
|
||||
ARG MIRROR_COUNTRY=US
|
||||
ARG MIRROR_COUNT=10
|
||||
|
||||
# ARG MIRROR_COUNTRY=US
|
||||
# RUN curl -s "https://www.archlinux.org/mirrorlist/?country=${MIRROR_COUNTRY}&protocol=https&use_mirror_status=on" | \
|
||||
# sed -e 's/^#Server/Server/' -e '/^#/d' | \
|
||||
# rankmirrors -n 5 - > /etc/pacman.d/mirrorlist
|
||||
# Arch Linux server mirrors for faster builds
|
||||
RUN if [[ "${RANKMIRRORS}" = yes ]]; then { pacman -Sy wget --noconfirm || pacman -Syu wget --noconfirm ; } \
|
||||
; wget -O ./rankmirrors "https://raw.githubusercontent.com/sickcodes/Docker-OSX/master/rankmirrors" \
|
||||
; wget -O- "https://www.archlinux.org/mirrorlist/?country=${MIRROR_COUNTRY:-US}&protocol=https&use_mirror_status=on" \
|
||||
| sed -e 's/^#Server/Server/' -e '/^#/d' \
|
||||
| head -n "$((${MIRROR_COUNT:-10}+1))" \
|
||||
| bash ./rankmirrors --verbose --max-time 5 - > /etc/pacman.d/mirrorlist \
|
||||
&& tee -a /etc/pacman.d/mirrorlist <<< 'Server = http://mirrors.evowise.com/archlinux/$repo/os/$arch' \
|
||||
&& tee -a /etc/pacman.d/mirrorlist <<< 'Server = http://mirror.rackspace.com/archlinux/$repo/os/$arch' \
|
||||
&& tee -a /etc/pacman.d/mirrorlist <<< 'Server = https://mirror.rackspace.com/archlinux/$repo/os/$arch' \
|
||||
&& cat /etc/pacman.d/mirrorlist; fi
|
||||
|
||||
USER arch
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user