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|
|
|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-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-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|
|
| |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
|
[@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
|
[@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/
|
# Repo: https://github.com/sickcodes/Docker-OSX/
|
||||||
# Title: Mac on Docker (Docker-OSX)
|
# Title: Mac on Docker (Docker-OSX)
|
||||||
# Author: Sick.Codes https://sick.codes/
|
# Author: Sick.Codes https://sick.codes/
|
||||||
# Version: 2.6
|
# Version: 2.7
|
||||||
# License: GPLv3+
|
# License: GPLv3+
|
||||||
#
|
#
|
||||||
# All credits for OSX-KVM and the rest at @Kholia's repo: https://github.com/kholia/osx-kvm
|
# 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.
|
# 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 libvirtd.service
|
||||||
# RUN sudo systemctl enable virtlogd.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
|
RUN python fetch-macOS.py --version "${VERSION}" \
|
||||||
|
&& qemu-img convert BaseSystem.dmg -O qcow2 -p -c BaseSystem.img \
|
||||||
# this command takes a while!
|
&& qemu-img create -f qcow2 mac_hdd_ng.img "${SIZE}" \
|
||||||
RUN perl -p -i -e 's/print("Succeeded:")/exit()/' ./gibMacOS.command \
|
&& rm -f BaseSystem.dmg
|
||||||
&& { 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
|
|
||||||
|
|
||||||
# > Launch.sh
|
# > Launch.sh
|
||||||
# > Docker-OSX.xml
|
# > Docker-OSX.xml
|
||||||
|
61
README.md
61
README.md
@ -1,19 +1,6 @@
|
|||||||
# Docker-OSX
|
# Docker-OSX
|
||||||
## [Follow @sickcodes on Twitter](https://twitter.com/sickcodes)
|
## [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")
|
![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!
|
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
|
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: 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
|
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:
|
### 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)
|
[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.
|
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
|
```bash
|
||||||
docker build -t docker-osx:latest \
|
docker build -t docker-osx:latest \
|
||||||
--build-arg VERSION=10.14.6 \
|
--build-arg RANKMIRRORS=yes \
|
||||||
--build-arg SIZE=200G
|
--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)
|
# Custom QEMU Arguments (passthrough devices)
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
#
|
#
|
||||||
# Title: Mac on Docker (Docker-OSX) [VNC EDITION]
|
# Title: Mac on Docker (Docker-OSX) [VNC EDITION]
|
||||||
# Author: Sick.Codes https://sick.codes/
|
# Author: Sick.Codes https://sick.codes/
|
||||||
# Version: 2.6
|
# Version: 2.7
|
||||||
# License: GPLv3+
|
# License: GPLv3+
|
||||||
#
|
#
|
||||||
# All credits for OSX-KVM and the rest at Kholia's repo: https://github.com/kholia/osx-kvm
|
# 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
|
USER root
|
||||||
|
|
||||||
RUN tee -a /etc/pacman.d/mirrorlist <<< 'Server = http://mirrors.evowise.com/archlinux/$repo/os/$arch' \
|
ARG RANKMIRRORS=no
|
||||||
&& tee -a /etc/pacman.d/mirrorlist <<< 'Server = http://mirror.rackspace.com/archlinux/$repo/os/$arch' \
|
ARG MIRROR_COUNTRY=US
|
||||||
&& tee -a /etc/pacman.d/mirrorlist <<< 'Server = https://mirror.rackspace.com/archlinux/$repo/os/$arch'
|
ARG MIRROR_COUNT=10
|
||||||
|
|
||||||
# ARG MIRROR_COUNTRY=US
|
# Arch Linux server mirrors for faster builds
|
||||||
# RUN curl -s "https://www.archlinux.org/mirrorlist/?country=${MIRROR_COUNTRY}&protocol=https&use_mirror_status=on" | \
|
RUN if [[ "${RANKMIRRORS}" = yes ]]; then { pacman -Sy wget --noconfirm || pacman -Syu wget --noconfirm ; } \
|
||||||
# sed -e 's/^#Server/Server/' -e '/^#/d' | \
|
; wget -O ./rankmirrors "https://raw.githubusercontent.com/sickcodes/Docker-OSX/master/rankmirrors" \
|
||||||
# rankmirrors -n 5 - > /etc/pacman.d/mirrorlist
|
; 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
|
USER arch
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user