You've already forked Docker-OSX
mirror of
https://github.com/sickcodes/Docker-OSX.git
synced 2025-07-03 03:03:31 -05:00
Compare commits
1 Commits
libguestfs
...
netdev
Author | SHA1 | Date | |
---|---|---|---|
75dfe1b678 |
@ -1,5 +1,6 @@
|
||||
|Version|Date|Notes|
|
||||
|---|---|---|
|
||||
| |2021-09-18|Add `-e NETDEV=`|
|
||||
| |2021-09-09|Add Monterey|
|
||||
| |2021-08-27|Add iPhone passthrough OTA!|
|
||||
|6.0|2021-08-25|Added naked-auto. Keep kernel at 5.13, even tho it's just for supermin.|
|
||||
|
@ -92,6 +92,4 @@ This project now uses the fantastic OpenCore bootloader from the community OpenC
|
||||
|
||||
[@cybik](https://github.com/cybik) Spice fix #337
|
||||
|
||||
[@Silfalion](https://github.com/Silfalion) - [https://github.com/Silfalion/Iphone_docker_osx_passthrough](https://github.com/Silfalion/Iphone_docker_osx_passthrough)
|
||||
|
||||
[@Buthrakaur](https://github.com/Buthrakaur) readme - improve instructions for running on windows #361
|
||||
[@Silfalion](https://github.com/Silfalion) - [https://github.com/Silfalion/Iphone_docker_osx_passthrough](https://github.com/Silfalion/Iphone_docker_osx_passthrough)
|
105
Dockerfile
105
Dockerfile
@ -52,7 +52,8 @@
|
||||
# # you will also need to pass the device to the container
|
||||
|
||||
FROM archlinux:base-devel
|
||||
LABEL maintainer='https://twitter.com/sickcodes <https://sick.codes>'
|
||||
|
||||
MAINTAINER 'https://twitter.com/sickcodes' <https://sick.codes>
|
||||
|
||||
SHELL ["/bin/bash", "-c"]
|
||||
|
||||
@ -166,6 +167,13 @@ RUN [[ "${VERSION%%.*}" -ge 11 ]] && { wget "${FETCH_MAC_OS_RAW}" \
|
||||
|
||||
WORKDIR /home/arch/OSX-KVM
|
||||
|
||||
ARG LINUX=true
|
||||
|
||||
# required to use libguestfs inside a docker container, to create bootdisks for docker-osx on-the-fly
|
||||
RUN if [[ "${LINUX}" == true ]]; then \
|
||||
sudo pacman -Syu linux libguestfs --noconfirm \
|
||||
; fi
|
||||
|
||||
# optional --build-arg to change branches for testing
|
||||
ARG BRANCH=master
|
||||
ARG REPO='https://github.com/sickcodes/Docker-OSX.git'
|
||||
@ -192,14 +200,14 @@ RUN touch Launch.sh \
|
||||
&& tee -a Launch.sh <<< '-smbios type=2 \' \
|
||||
&& tee -a Launch.sh <<< '-audiodev ${AUDIO_DRIVER:-alsa},id=hda -device ich9-intel-hda -device hda-duplex,audiodev=hda \' \
|
||||
&& tee -a Launch.sh <<< '-device ich9-ahci,id=sata \' \
|
||||
&& tee -a Launch.sh <<< '-drive id=OpenCoreBoot,if=none,snapshot=on,format=qcow2,file=${BOOTDISK:-/home/arch/OSX-KVM/OpenCore/OpenCore.qcow2} \' \
|
||||
&& tee -a Launch.sh <<< '-drive id=OpenCoreBoot,if=none,snapshot=on,format=qcow2,file=${BOOTDISK:-/home/arch/OSX-KVM/OpenCore-Catalina/OpenCore.qcow2} \' \
|
||||
&& tee -a Launch.sh <<< '-device ide-hd,bus=sata.2,drive=OpenCoreBoot \' \
|
||||
&& tee -a Launch.sh <<< '-device ide-hd,bus=sata.3,drive=InstallMedia \' \
|
||||
&& tee -a Launch.sh <<< '-drive id=InstallMedia,if=none,file=/home/arch/OSX-KVM/BaseSystem.img,format=qcow2 \' \
|
||||
&& tee -a Launch.sh <<< '-drive id=MacHDD,if=none,file=${IMAGE_PATH:-/home/arch/OSX-KVM/mac_hdd_ng.img},format=${IMAGE_FORMAT:-qcow2} \' \
|
||||
&& tee -a Launch.sh <<< '-device ide-hd,bus=sata.4,drive=MacHDD \' \
|
||||
&& tee -a Launch.sh <<< '-netdev user,id=net0,hostfwd=tcp::${INTERNAL_SSH_PORT:-10022}-:22,hostfwd=tcp::${SCREEN_SHARE_PORT:-5900}-:5900,${ADDITIONAL_PORTS} \' \
|
||||
&& tee -a Launch.sh <<< '-device ${NETWORKING:-vmxnet3},netdev=net0,id=net0,mac=${MAC_ADDRESS:-52:54:00:09:49:17} \' \
|
||||
&& tee -a Launch.sh <<< '-netdev ${NETDEV:-user,id=net0,hostfwd=tcp::${INTERNAL_SSH_PORT:-10022}-:22,hostfwd=tcp::${SCREEN_SHARE_PORT:-5900}-:5900,${ADDITIONAL_PORTS}} \' \
|
||||
&& tee -a Launch.sh <<< '-device ${NETWORKING_DEVICE:-vmxnet3},netdev=net0,id=net0,mac=${MAC_ADDRESS:-52:54:00:09:49:17} \' \
|
||||
&& tee -a Launch.sh <<< '-monitor stdio \' \
|
||||
&& tee -a Launch.sh <<< '-boot menu=on \' \
|
||||
&& tee -a Launch.sh <<< '-vga vmware \' \
|
||||
@ -208,83 +216,30 @@ RUN touch Launch.sh \
|
||||
# docker exec containerid mv ./Launch-nopicker.sh ./Launch.sh
|
||||
# This is now a legacy command.
|
||||
# You can use -e BOOTDISK=/bootdisk with -v ./bootdisk.img:/bootdisk
|
||||
|
||||
### LEGACY CODE
|
||||
RUN grep -v InstallMedia ./Launch.sh > ./Launch-nopicker.sh \
|
||||
&& chmod +x ./Launch-nopicker.sh \
|
||||
&& sed -i -e s/OpenCore\.qcow2/OpenCore\-nopicker\.qcow2/ ./Launch-nopicker.sh
|
||||
###
|
||||
|
||||
USER arch
|
||||
|
||||
ENV USER arch
|
||||
|
||||
#### libguestfs versioning
|
||||
|
||||
# 5.13+ problem resolved by building the qcow2 against 5.12 using libguestfs-1.44.1-6
|
||||
|
||||
# 5.13 problem
|
||||
ENV SUPERMIN_KERNEL=/boot/vmlinuz-linux
|
||||
|
||||
ENV SUPERMIN_MODULES=/lib/modules/5.12.14-arch1-1
|
||||
|
||||
ENV SUPERMIN_KERNEL_VERSION=5.12.14-arch1-1
|
||||
ENV KERNEL_PACKAGE_URL=https://archive.archlinux.org/packages/l/linux/linux-5.12.14.arch1-1-x86_64.pkg.tar.zst
|
||||
ENV LIBGUESTFS_PACKAGE_URL=https://archive.archlinux.org/packages/l/libguestfs/libguestfs-1.44.1-6-x86_64.pkg.tar.zst
|
||||
|
||||
ARG LINUX=true
|
||||
|
||||
# required to use libguestfs inside a docker container, to create bootdisks for docker-osx on-the-fly
|
||||
RUN if [[ "${LINUX}" == true ]]; then \
|
||||
sudo pacman -U "${KERNEL_PACKAGE_URL}" --noconfirm \
|
||||
; sudo pacman -U "${LIBGUESTFS_PACKAGE_URL}" --noconfirm \
|
||||
; sudo libguestfs-test-tool \
|
||||
; sudo rm -rf /var/tmp/.guestfs-* \
|
||||
; fi
|
||||
|
||||
####
|
||||
|
||||
# These are hardcoded serials for non-iMessage related research
|
||||
# Overwritten by using GENERATE_UNIQUE=true
|
||||
# Upstream removed nopicker, so we are adding it back in, at build time
|
||||
# Once again, this is just for the Docker build so there is a default nopicker image there
|
||||
|
||||
ARG STOCK_DEVICE_MODEL=iMacPro1,1
|
||||
ARG STOCK_SERIAL=C02TM2ZBHX87
|
||||
ARG STOCK_BOARD_SERIAL=C02717306J9JG361M
|
||||
ARG STOCK_UUID=007076A6-F2A2-4461-BBE5-BAD019F8025A
|
||||
ARG STOCK_MAC_ADDRESS=00:0A:27:00:00:00
|
||||
ARG STOCK_WIDTH=1920
|
||||
ARG STOCK_HEIGHT=1080
|
||||
ARG STOCK_MASTER_PLIST_URL=https://raw.githubusercontent.com/sickcodes/osx-serial-generator/master/config-custom.plist
|
||||
ARG STOCK_MASTER_PLIST_URL_NOPICKER=https://raw.githubusercontent.com/sickcodes/osx-serial-generator/master/config-nopicker-custom.plist
|
||||
ARG STOCK_BOOTDISK=/home/arch/OSX-KVM/OpenCore/OpenCore.qcow2
|
||||
ARG STOCK_BOOTDISK_NOPICKER=/home/arch/OSX-KVM/OpenCore/OpenCore-nopicker.qcow2
|
||||
|
||||
RUN ./Docker-OSX/osx-serial-generator/generate-specific-bootdisk.sh \
|
||||
--master-plist-url="${STOCK_MASTER_PLIST_URL}" \
|
||||
--model "${STOCK_DEVICE_MODEL}" \
|
||||
--serial "${STOCK_SERIAL}" \
|
||||
--board-serial "${STOCK_BOARD_SERIAL}" \
|
||||
--uuid "${STOCK_UUID}" \
|
||||
--mac-address "${STOCK_MAC_ADDRESS}" \
|
||||
--width "${STOCK_WIDTH}" \
|
||||
--height "${STOCK_HEIGHT}" \
|
||||
--output-bootdisk "${STOCK_BOOTDISK}"
|
||||
|
||||
RUN ./Docker-OSX/osx-serial-generator/generate-specific-bootdisk.sh \
|
||||
--master-plist-url="${STOCK_MASTER_PLIST_URL_NOPICKER}" \
|
||||
--model "${STOCK_DEVICE_MODEL}" \
|
||||
--serial "${STOCK_SERIAL}" \
|
||||
--board-serial "${STOCK_BOARD_SERIAL}" \
|
||||
--uuid "${STOCK_UUID}" \
|
||||
--mac-address "${STOCK_MAC_ADDRESS}" \
|
||||
--width "${STOCK_WIDTH}" \
|
||||
--height "${STOCK_HEIGHT}" \
|
||||
--output-bootdisk "${STOCK_BOOTDISK_NOPICKER}"
|
||||
|
||||
### symlink the old directory as upstream has renamed a directory. Symlinking purely for backwards compatability!
|
||||
RUN ln -s /home/arch/OSX-KVM/Opencore /home/arch/OSX-KVM/Opencore-Catalina || true
|
||||
####
|
||||
RUN sudo pacman -Rns linux --noconfirm \
|
||||
; sudo pacman -Syy \
|
||||
; sudo pacman -S mkinitcpio --noconfirm \
|
||||
; sudo pacman -U https://archive.archlinux.org/packages/l/linux/linux-5.12.14.arch1-1-x86_64.pkg.tar.zst --noconfirm \
|
||||
; sudo rm -rf /var/tmp/.guestfs-* \
|
||||
; libguestfs-test-tool
|
||||
|
||||
#### SPECIAL RUNTIME ARGUMENTS BELOW
|
||||
|
||||
# env -e ADDITIONAL_PORTS with a comma
|
||||
# for example, -e ADDITIONAL_PORTS=hostfwd=tcp::23-:23,
|
||||
ENV ADDITIONAL_PORTS=
|
||||
@ -316,8 +271,14 @@ ENV KVM='accel=kvm:tcg'
|
||||
|
||||
ENV MASTER_PLIST_URL="https://raw.githubusercontent.com/sickcodes/osx-serial-generator/master/config-nopicker-custom.plist"
|
||||
|
||||
# Add NETDEV for bridged networking option, see https://github.com/sickcodes/Docker-OSX/issues/72
|
||||
# ENV NETDEV='tap,id=net0,ifname=tap0,script=no,downscript=no'
|
||||
# ENV NETDEV='user,id=net0,hostfwd=tcp::${INTERNAL_SSH_PORT:-10022}-:22,hostfwd=tcp::${SCREEN_SHARE_PORT:-5900}-:5900,${ADDITIONAL_PORTS}'
|
||||
|
||||
# ENV NETWORKING=e1000-82545em
|
||||
# renamed to NETWORKING_DEVICE, but not deprecated
|
||||
ENV NETWORKING=vmxnet3
|
||||
ENV NETWORKING_DEVICE="${NETWORKING}"
|
||||
|
||||
# boolean for skipping the disk selection menu at in the boot process
|
||||
ENV NOPICKER=false
|
||||
@ -354,16 +315,16 @@ VOLUME ["/tmp/.X11-unix"]
|
||||
# /bootdisk is a useful persistent place to store the 15Mb serial number bootdisk.
|
||||
|
||||
# if you don't set any of the above:
|
||||
# the default serial numbers are already contained in ./OpenCore/OpenCore.qcow2
|
||||
# the default serial numbers are already contained in ./OpenCore-Catalina/OpenCore.qcow2
|
||||
# And the default serial numbers
|
||||
|
||||
CMD sudo touch /dev/kvm /dev/snd "${IMAGE_PATH}" "${BOOTDISK}" "${ENV}" 2>/dev/null || true \
|
||||
; sudo chown -R $(id -u):$(id -g) /dev/kvm /dev/snd "${IMAGE_PATH}" "${BOOTDISK}" "${ENV}" 2>/dev/null || true \
|
||||
; [[ "${NOPICKER}" == true ]] && { \
|
||||
sed -i '/^.*InstallMedia.*/d' Launch.sh \
|
||||
&& export BOOTDISK="${BOOTDISK:=/home/arch/OSX-KVM/OpenCore/OpenCore-nopicker.qcow2}" \
|
||||
&& export BOOTDISK="${BOOTDISK:=/home/arch/OSX-KVM/OpenCore-Catalina/OpenCore-nopicker.qcow2}" \
|
||||
; } \
|
||||
|| export BOOTDISK="${BOOTDISK:=/home/arch/OSX-KVM/OpenCore/OpenCore.qcow2}" \
|
||||
|| export BOOTDISK="${BOOTDISK:=/home/arch/OSX-KVM/OpenCore-Catalina/OpenCore.qcow2}" \
|
||||
; [[ "${GENERATE_UNIQUE}" == true ]] && { \
|
||||
./Docker-OSX/osx-serial-generator/generate-unique-machine-values.sh \
|
||||
--master-plist-url="${MASTER_PLIST_URL}" \
|
||||
@ -372,7 +333,7 @@ CMD sudo touch /dev/kvm /dev/snd "${IMAGE_PATH}" "${BOOTDISK}" "${ENV}" 2>/dev/n
|
||||
--bootdisks \
|
||||
--width "${WIDTH:-1920}" \
|
||||
--height "${HEIGHT:-1080}" \
|
||||
--output-bootdisk "${BOOTDISK:=/home/arch/OSX-KVM/OpenCore/OpenCore.qcow2}" \
|
||||
--output-bootdisk "${BOOTDISK:=/home/arch/OSX-KVM/OpenCore-Catalina/OpenCore.qcow2}" \
|
||||
--output-env "${ENV:=/env}" \
|
||||
|| exit 1 ; } \
|
||||
; [[ "${GENERATE_SPECIFIC}" == true ]] && { \
|
||||
@ -386,7 +347,7 @@ CMD sudo touch /dev/kvm /dev/snd "${IMAGE_PATH}" "${BOOTDISK}" "${ENV}" 2>/dev/n
|
||||
--mac-address "${MAC_ADDRESS}" \
|
||||
--width "${WIDTH:-1920}" \
|
||||
--height "${HEIGHT:-1080}" \
|
||||
--output-bootdisk "${BOOTDISK:=/home/arch/OSX-KVM/OpenCore/OpenCore.qcow2}" \
|
||||
--output-bootdisk "${BOOTDISK:=/home/arch/OSX-KVM/OpenCore-Catalina/OpenCore.qcow2}" \
|
||||
|| exit 1 ; } \
|
||||
; ./enable-ssh.sh && /bin/bash -c ./Launch.sh
|
||||
|
||||
|
@ -92,29 +92,19 @@ USER arch
|
||||
|
||||
ENV USER arch
|
||||
|
||||
|
||||
#### libguestfs versioning
|
||||
|
||||
# 5.13+ problem resolved by building the qcow2 against 5.12 using libguestfs-1.44.1-6
|
||||
|
||||
# 5.13 problem
|
||||
ENV SUPERMIN_KERNEL=/boot/vmlinuz-linux
|
||||
|
||||
ENV SUPERMIN_MODULES=/lib/modules/5.12.14-arch1-1
|
||||
|
||||
ENV SUPERMIN_KERNEL_VERSION=5.12.14-arch1-1
|
||||
ENV KERNEL_PACKAGE_URL=https://archive.archlinux.org/packages/l/linux/linux-5.12.14.arch1-1-x86_64.pkg.tar.zst
|
||||
ENV LIBGUESTFS_PACKAGE_URL=https://archive.archlinux.org/packages/l/libguestfs/libguestfs-1.44.1-6-x86_64.pkg.tar.zst
|
||||
|
||||
ARG LINUX=true
|
||||
|
||||
# required to use libguestfs inside a docker container, to create bootdisks for docker-osx on-the-fly
|
||||
RUN if [[ "${LINUX}" == true ]]; then \
|
||||
sudo pacman -U "${KERNEL_PACKAGE_URL}" --noconfirm \
|
||||
; sudo pacman -U "${LIBGUESTFS_PACKAGE_URL}" --noconfirm \
|
||||
; sudo libguestfs-test-tool \
|
||||
; sudo rm -rf /var/tmp/.guestfs-* \
|
||||
; fi
|
||||
|
||||
####
|
||||
|
||||
RUN sudo pacman -Rns linux --noconfirm \
|
||||
; sudo pacman -Syy \
|
||||
; sudo pacman -S mkinitcpio --noconfirm \
|
||||
; sudo pacman -U https://archive.archlinux.org/packages/l/linux/linux-5.12.14.arch1-1-x86_64.pkg.tar.zst --noconfirm \
|
||||
; sudo rm -rf /var/tmp/.guestfs-* \
|
||||
; libguestfs-test-tool
|
||||
|
||||
WORKDIR /home/arch/OSX-KVM
|
||||
|
||||
@ -145,14 +135,6 @@ RUN if [[ "${COMPLETE}" ]]; then \
|
||||
&& wget ${WGET_OPTIONS} -O /home/arch/OSX-KVM/mac_hdd_ng.img "${IMAGE_URL}" \
|
||||
; fi
|
||||
|
||||
|
||||
####
|
||||
|
||||
# symlink the old directory, for redundancy
|
||||
RUN ln -s /home/arch/OSX-KVM/Opencore /home/arch/OSX-KVM/Opencore-Catalina || true
|
||||
|
||||
####
|
||||
|
||||
#### SPECIAL RUNTIME ARGUMENTS BELOW
|
||||
|
||||
ENV ADDITIONAL_PORTS=
|
||||
@ -218,9 +200,9 @@ CMD echo "${BOILERPLATE}" \
|
||||
; sudo chown -R $(id -u):$(id -g) /dev/kvm /dev/snd "${IMAGE_PATH}" "${BOOTDISK}" "${ENV}" 2>/dev/null || true \
|
||||
; [[ "${NOPICKER}" == true ]] && { \
|
||||
sed -i '/^.*InstallMedia.*/d' Launch.sh \
|
||||
&& export BOOTDISK="${BOOTDISK:=/home/arch/OSX-KVM/OpenCore/OpenCore-nopicker.qcow2}" \
|
||||
&& export BOOTDISK="${BOOTDISK:=/home/arch/OSX-KVM/OpenCore-Catalina/OpenCore-nopicker.qcow2}" \
|
||||
; } \
|
||||
|| export BOOTDISK="${BOOTDISK:=/home/arch/OSX-KVM/OpenCore/OpenCore.qcow2}" \
|
||||
|| export BOOTDISK="${BOOTDISK:=/home/arch/OSX-KVM/OpenCore-Catalina/OpenCore.qcow2}" \
|
||||
; [[ "${GENERATE_UNIQUE}" == true ]] && { \
|
||||
./Docker-OSX/osx-serial-generator/generate-unique-machine-values.sh \
|
||||
--master-plist-url="${MASTER_PLIST_URL}" \
|
||||
@ -229,7 +211,7 @@ CMD echo "${BOILERPLATE}" \
|
||||
--bootdisks \
|
||||
--width "${WIDTH:-1920}" \
|
||||
--height "${HEIGHT:-1080}" \
|
||||
--output-bootdisk "${BOOTDISK:=/home/arch/OSX-KVM/OpenCore/OpenCore.qcow2}" \
|
||||
--output-bootdisk "${BOOTDISK:=/home/arch/OSX-KVM/OpenCore-Catalina/OpenCore.qcow2}" \
|
||||
--output-env "${ENV:=/env}" \
|
||||
|| exit 1 ; } \
|
||||
; [[ "${GENERATE_SPECIFIC}" == true ]] && { \
|
||||
@ -243,7 +225,7 @@ CMD echo "${BOILERPLATE}" \
|
||||
--mac-address "${MAC_ADDRESS}" \
|
||||
--width "${WIDTH:-1920}" \
|
||||
--height "${HEIGHT:-1080}" \
|
||||
--output-bootdisk "${BOOTDISK:=/home/arch/OSX-KVM/OpenCore/OpenCore.qcow2}" \
|
||||
--output-bootdisk "${BOOTDISK:=/home/arch/OSX-KVM/OpenCore-Catalina/OpenCore.qcow2}" \
|
||||
|| exit 1 ; } \
|
||||
; { [[ "${DISPLAY}" = ':99' ]] || [[ "${HEADLESS}" == true ]] ; } && { \
|
||||
nohup Xvfb :99 -screen 0 1920x1080x16 \
|
||||
|
@ -73,7 +73,7 @@ RUN touch Launch.sh \
|
||||
&& tee -a Launch.sh <<< '-smbios type=2 \' \
|
||||
&& tee -a Launch.sh <<< '-audiodev ${AUDIO_DRIVER:-alsa},id=hda -device ich9-intel-hda -device hda-duplex,audiodev=hda \' \
|
||||
&& tee -a Launch.sh <<< '-device ich9-ahci,id=sata \' \
|
||||
&& tee -a Launch.sh <<< '-drive id=OpenCoreBoot,if=none,snapshot=on,format=qcow2,file=${BOOTDISK:-/home/arch/OSX-KVM/OpenCore/OpenCore.qcow2} \' \
|
||||
&& tee -a Launch.sh <<< '-drive id=OpenCoreBoot,if=none,snapshot=on,format=qcow2,file=${BOOTDISK:-/home/arch/OSX-KVM/OpenCore-Catalina/OpenCore.qcow2} \' \
|
||||
&& tee -a Launch.sh <<< '-device ide-hd,bus=sata.2,drive=OpenCoreBoot \' \
|
||||
&& tee -a Launch.sh <<< '-device ide-hd,bus=sata.3,drive=InstallMedia \' \
|
||||
&& tee -a Launch.sh <<< '-drive id=InstallMedia,if=none,file=/home/arch/OSX-KVM/BaseSystem.img,format=qcow2 \' \
|
||||
@ -97,33 +97,19 @@ USER arch
|
||||
|
||||
ENV USER arch
|
||||
|
||||
|
||||
#### libguestfs versioning
|
||||
|
||||
# 5.13+ problem resolved by building the qcow2 against 5.12 using libguestfs-1.44.1-6
|
||||
|
||||
# 5.13 problem
|
||||
ENV SUPERMIN_KERNEL=/boot/vmlinuz-linux
|
||||
|
||||
ENV SUPERMIN_MODULES=/lib/modules/5.12.14-arch1-1
|
||||
|
||||
ENV SUPERMIN_KERNEL_VERSION=5.12.14-arch1-1
|
||||
ENV KERNEL_PACKAGE_URL=https://archive.archlinux.org/packages/l/linux/linux-5.12.14.arch1-1-x86_64.pkg.tar.zst
|
||||
ENV LIBGUESTFS_PACKAGE_URL=https://archive.archlinux.org/packages/l/libguestfs/libguestfs-1.44.1-6-x86_64.pkg.tar.zst
|
||||
|
||||
ARG LINUX=true
|
||||
|
||||
# required to use libguestfs inside a docker container, to create bootdisks for docker-osx on-the-fly
|
||||
RUN if [[ "${LINUX}" == true ]]; then \
|
||||
sudo pacman -U "${KERNEL_PACKAGE_URL}" --noconfirm \
|
||||
; sudo pacman -U "${LIBGUESTFS_PACKAGE_URL}" --noconfirm \
|
||||
; sudo libguestfs-test-tool \
|
||||
; sudo rm -rf /var/tmp/.guestfs-* \
|
||||
; fi
|
||||
|
||||
####
|
||||
|
||||
# symlink the old directory, for redundancy
|
||||
RUN ln -s /home/arch/OSX-KVM/Opencore /home/arch/OSX-KVM/Opencore-Catalina || true
|
||||
|
||||
####
|
||||
RUN sudo pacman -Rns linux --noconfirm \
|
||||
; sudo pacman -Syy \
|
||||
; sudo pacman -S mkinitcpio --noconfirm \
|
||||
; sudo pacman -U https://archive.archlinux.org/packages/l/linux/linux-5.12.14.arch1-1-x86_64.pkg.tar.zst --noconfirm \
|
||||
; sudo rm -rf /var/tmp/.guestfs-* \
|
||||
; libguestfs-test-tool
|
||||
|
||||
#### SPECIAL RUNTIME ARGUMENTS BELOW
|
||||
|
||||
@ -196,16 +182,16 @@ VOLUME ["/tmp/.X11-unix"]
|
||||
# /bootdisk is a useful persistent place to store the 15Mb serial number bootdisk.
|
||||
|
||||
# if you don't set any of the above:
|
||||
# the default serial numbers are already contained in ./OpenCore/OpenCore.qcow2
|
||||
# the default serial numbers are already contained in ./OpenCore-Catalina/OpenCore.qcow2
|
||||
# And the default serial numbers
|
||||
|
||||
CMD sudo touch /dev/kvm /dev/snd "${IMAGE_PATH}" "${BOOTDISK}" "${ENV}" 2>/dev/null || true \
|
||||
; sudo chown -R $(id -u):$(id -g) /dev/kvm /dev/snd "${IMAGE_PATH}" "${BOOTDISK}" "${ENV}" 2>/dev/null || true \
|
||||
; [[ "${NOPICKER}" == true ]] && { \
|
||||
sed -i '/^.*InstallMedia.*/d' Launch.sh \
|
||||
&& export BOOTDISK="${BOOTDISK:=/home/arch/OSX-KVM/OpenCore/OpenCore-nopicker.qcow2}" \
|
||||
&& export BOOTDISK="${BOOTDISK:=/home/arch/OSX-KVM/OpenCore-Catalina/OpenCore-nopicker.qcow2}" \
|
||||
; } \
|
||||
|| export BOOTDISK="${BOOTDISK:=/home/arch/OSX-KVM/OpenCore/OpenCore.qcow2}" \
|
||||
|| export BOOTDISK="${BOOTDISK:=/home/arch/OSX-KVM/OpenCore-Catalina/OpenCore.qcow2}" \
|
||||
; [[ "${GENERATE_UNIQUE}" == true ]] && { \
|
||||
./Docker-OSX/osx-serial-generator/generate-unique-machine-values.sh \
|
||||
--master-plist-url="${MASTER_PLIST_URL}" \
|
||||
@ -214,7 +200,7 @@ CMD sudo touch /dev/kvm /dev/snd "${IMAGE_PATH}" "${BOOTDISK}" "${ENV}" 2>/dev/n
|
||||
--bootdisks \
|
||||
--width "${WIDTH:-1920}" \
|
||||
--height "${HEIGHT:-1080}" \
|
||||
--output-bootdisk "${BOOTDISK:=/home/arch/OSX-KVM/OpenCore/OpenCore.qcow2}" \
|
||||
--output-bootdisk "${BOOTDISK:=/home/arch/OSX-KVM/OpenCore-Catalina/OpenCore.qcow2}" \
|
||||
--output-env "${ENV:=/env}" \
|
||||
|| exit 1 ; } \
|
||||
; [[ "${GENERATE_SPECIFIC}" == true ]] && { \
|
||||
@ -228,7 +214,7 @@ CMD sudo touch /dev/kvm /dev/snd "${IMAGE_PATH}" "${BOOTDISK}" "${ENV}" 2>/dev/n
|
||||
--mac-address "${MAC_ADDRESS}" \
|
||||
--width "${WIDTH:-1920}" \
|
||||
--height "${HEIGHT:-1080}" \
|
||||
--output-bootdisk "${BOOTDISK:=/home/arch/OSX-KVM/OpenCore/OpenCore.qcow2}" \
|
||||
--output-bootdisk "${BOOTDISK:=/home/arch/OSX-KVM/OpenCore-Catalina/OpenCore.qcow2}" \
|
||||
|| exit 1 ; } \
|
||||
; ./enable-ssh.sh && /bin/bash -c ./Launch.sh
|
||||
|
||||
|
@ -81,29 +81,19 @@ USER arch
|
||||
|
||||
ENV USER arch
|
||||
|
||||
|
||||
#### libguestfs versioning
|
||||
|
||||
# 5.13+ problem resolved by building the qcow2 against 5.12 using libguestfs-1.44.1-6
|
||||
|
||||
# 5.13 problem
|
||||
ENV SUPERMIN_KERNEL=/boot/vmlinuz-linux
|
||||
|
||||
ENV SUPERMIN_MODULES=/lib/modules/5.12.14-arch1-1
|
||||
|
||||
ENV SUPERMIN_KERNEL_VERSION=5.12.14-arch1-1
|
||||
ENV KERNEL_PACKAGE_URL=https://archive.archlinux.org/packages/l/linux/linux-5.12.14.arch1-1-x86_64.pkg.tar.zst
|
||||
ENV LIBGUESTFS_PACKAGE_URL=https://archive.archlinux.org/packages/l/libguestfs/libguestfs-1.44.1-6-x86_64.pkg.tar.zst
|
||||
|
||||
ARG LINUX=true
|
||||
|
||||
# required to use libguestfs inside a docker container, to create bootdisks for docker-osx on-the-fly
|
||||
RUN if [[ "${LINUX}" == true ]]; then \
|
||||
sudo pacman -U "${KERNEL_PACKAGE_URL}" --noconfirm \
|
||||
; sudo pacman -U "${LIBGUESTFS_PACKAGE_URL}" --noconfirm \
|
||||
; sudo libguestfs-test-tool \
|
||||
; sudo rm -rf /var/tmp/.guestfs-* \
|
||||
; fi
|
||||
|
||||
####
|
||||
|
||||
RUN sudo pacman -Rns linux --noconfirm \
|
||||
; sudo pacman -Syy \
|
||||
; sudo pacman -S mkinitcpio --noconfirm \
|
||||
; sudo pacman -U https://archive.archlinux.org/packages/l/linux/linux-5.12.14.arch1-1-x86_64.pkg.tar.zst --noconfirm \
|
||||
; sudo rm -rf /var/tmp/.guestfs-* \
|
||||
; libguestfs-test-tool
|
||||
|
||||
WORKDIR /home/arch/OSX-KVM
|
||||
|
||||
@ -117,13 +107,6 @@ RUN mkdir -p ~/.ssh \
|
||||
&& tee -a ~/.ssh/config <<< ' StrictHostKeyChecking no' \
|
||||
&& tee -a ~/.ssh/config <<< ' UserKnownHostsFile=/dev/null'
|
||||
|
||||
####
|
||||
|
||||
# symlink the old directory, for redundancy
|
||||
RUN ln -s /home/arch/OSX-KVM/Opencore /home/arch/OSX-KVM/Opencore-Catalina || true
|
||||
|
||||
####
|
||||
|
||||
#### SPECIAL RUNTIME ARGUMENTS BELOW
|
||||
|
||||
ENV ADDITIONAL_PORTS=
|
||||
@ -182,9 +165,9 @@ CMD sudo touch /dev/kvm /dev/snd "${IMAGE_PATH}" "${BOOTDISK}" "${ENV}" 2>/dev/n
|
||||
; } \
|
||||
; [[ "${NOPICKER}" == true ]] && { \
|
||||
sed -i '/^.*InstallMedia.*/d' Launch.sh \
|
||||
&& export BOOTDISK="${BOOTDISK:=/home/arch/OSX-KVM/OpenCore/OpenCore-nopicker.qcow2}" \
|
||||
&& export BOOTDISK="${BOOTDISK:=/home/arch/OSX-KVM/OpenCore-Catalina/OpenCore-nopicker.qcow2}" \
|
||||
; } \
|
||||
|| export BOOTDISK="${BOOTDISK:=/home/arch/OSX-KVM/OpenCore/OpenCore.qcow2}" \
|
||||
|| export BOOTDISK="${BOOTDISK:=/home/arch/OSX-KVM/OpenCore-Catalina/OpenCore.qcow2}" \
|
||||
; [[ "${GENERATE_UNIQUE}" == true ]] && { \
|
||||
./Docker-OSX/osx-serial-generator/generate-unique-machine-values.sh \
|
||||
--master-plist-url="${MASTER_PLIST_URL}" \
|
||||
@ -193,7 +176,7 @@ CMD sudo touch /dev/kvm /dev/snd "${IMAGE_PATH}" "${BOOTDISK}" "${ENV}" 2>/dev/n
|
||||
--bootdisks \
|
||||
--width "${WIDTH:-1920}" \
|
||||
--height "${HEIGHT:-1080}" \
|
||||
--output-bootdisk "${BOOTDISK:=/home/arch/OSX-KVM/OpenCore/OpenCore.qcow2}" \
|
||||
--output-bootdisk "${BOOTDISK:=/home/arch/OSX-KVM/OpenCore-Catalina/OpenCore.qcow2}" \
|
||||
--output-env "${ENV:=/env}" \
|
||||
|| exit 1 ; } \
|
||||
; [[ "${GENERATE_SPECIFIC}" == true ]] && { \
|
||||
@ -207,6 +190,6 @@ CMD sudo touch /dev/kvm /dev/snd "${IMAGE_PATH}" "${BOOTDISK}" "${ENV}" 2>/dev/n
|
||||
--mac-address "${MAC_ADDRESS}" \
|
||||
--width "${WIDTH:-1920}" \
|
||||
--height "${HEIGHT:-1080}" \
|
||||
--output-bootdisk "${BOOTDISK:=/home/arch/OSX-KVM/OpenCore/OpenCore.qcow2}" \
|
||||
--output-bootdisk "${BOOTDISK:=/home/arch/OSX-KVM/OpenCore-Catalina/OpenCore.qcow2}" \
|
||||
|| exit 1 ; } \
|
||||
; ./enable-ssh.sh && /bin/bash -c ./Launch.sh
|
||||
|
@ -73,28 +73,19 @@ USER arch
|
||||
|
||||
ENV USER arch
|
||||
|
||||
#### libguestfs versioning
|
||||
|
||||
# 5.13+ problem resolved by building the qcow2 against 5.12 using libguestfs-1.44.1-6
|
||||
|
||||
# 5.13 problem
|
||||
ENV SUPERMIN_KERNEL=/boot/vmlinuz-linux
|
||||
|
||||
ENV SUPERMIN_MODULES=/lib/modules/5.12.14-arch1-1
|
||||
|
||||
ENV SUPERMIN_KERNEL_VERSION=5.12.14-arch1-1
|
||||
ENV KERNEL_PACKAGE_URL=https://archive.archlinux.org/packages/l/linux/linux-5.12.14.arch1-1-x86_64.pkg.tar.zst
|
||||
ENV LIBGUESTFS_PACKAGE_URL=https://archive.archlinux.org/packages/l/libguestfs/libguestfs-1.44.1-6-x86_64.pkg.tar.zst
|
||||
|
||||
ARG LINUX=true
|
||||
|
||||
# required to use libguestfs inside a docker container, to create bootdisks for docker-osx on-the-fly
|
||||
RUN if [[ "${LINUX}" == true ]]; then \
|
||||
sudo pacman -U "${KERNEL_PACKAGE_URL}" --noconfirm \
|
||||
; sudo pacman -U "${LIBGUESTFS_PACKAGE_URL}" --noconfirm \
|
||||
; sudo libguestfs-test-tool \
|
||||
; sudo rm -rf /var/tmp/.guestfs-* \
|
||||
; fi
|
||||
|
||||
####
|
||||
|
||||
RUN sudo pacman -Rns linux --noconfirm \
|
||||
; sudo pacman -Syy \
|
||||
; sudo pacman -S mkinitcpio --noconfirm \
|
||||
; sudo pacman -U https://archive.archlinux.org/packages/l/linux/linux-5.12.14.arch1-1-x86_64.pkg.tar.zst --noconfirm \
|
||||
; sudo rm -rf /var/tmp/.guestfs-* \
|
||||
; libguestfs-test-tool
|
||||
|
||||
WORKDIR /home/arch/OSX-KVM
|
||||
|
||||
@ -125,13 +116,6 @@ RUN if [[ "${COMPLETE}" ]]; then \
|
||||
&& wget ${WGET_OPTIONS} -O /home/arch/OSX-KVM/mac_hdd_ng.img "${IMAGE_URL}" \
|
||||
; fi
|
||||
|
||||
####
|
||||
|
||||
# symlink the old directory, for redundancy
|
||||
RUN ln -s /home/arch/OSX-KVM/Opencore /home/arch/OSX-KVM/Opencore-Catalina || true
|
||||
|
||||
####
|
||||
|
||||
#### SPECIAL RUNTIME ARGUMENTS BELOW
|
||||
|
||||
ENV ADDITIONAL_PORTS=
|
||||
@ -197,9 +181,9 @@ CMD echo "${BOILERPLATE}" \
|
||||
; sudo chown -R $(id -u):$(id -g) /dev/kvm /dev/snd "${IMAGE_PATH}" "${BOOTDISK}" "${ENV}" 2>/dev/null || true \
|
||||
; [[ "${NOPICKER}" == true ]] && { \
|
||||
sed -i '/^.*InstallMedia.*/d' Launch.sh \
|
||||
&& export BOOTDISK="${BOOTDISK:=/home/arch/OSX-KVM/OpenCore/OpenCore-nopicker.qcow2}" \
|
||||
&& export BOOTDISK="${BOOTDISK:=/home/arch/OSX-KVM/OpenCore-Catalina/OpenCore-nopicker.qcow2}" \
|
||||
; } \
|
||||
|| export BOOTDISK="${BOOTDISK:=/home/arch/OSX-KVM/OpenCore/OpenCore.qcow2}" \
|
||||
|| export BOOTDISK="${BOOTDISK:=/home/arch/OSX-KVM/OpenCore-Catalina/OpenCore.qcow2}" \
|
||||
; [[ "${GENERATE_UNIQUE}" == true ]] && { \
|
||||
./Docker-OSX/osx-serial-generator/generate-unique-machine-values.sh \
|
||||
--master-plist-url="${MASTER_PLIST_URL}" \
|
||||
@ -208,7 +192,7 @@ CMD echo "${BOILERPLATE}" \
|
||||
--bootdisks \
|
||||
--width "${WIDTH:-1920}" \
|
||||
--height "${HEIGHT:-1080}" \
|
||||
--output-bootdisk "${BOOTDISK:=/home/arch/OSX-KVM/OpenCore/OpenCore.qcow2}" \
|
||||
--output-bootdisk "${BOOTDISK:=/home/arch/OSX-KVM/OpenCore-Catalina/OpenCore.qcow2}" \
|
||||
--output-env "${ENV:=/env}" \
|
||||
|| exit 1 ; } \
|
||||
; [[ "${GENERATE_SPECIFIC}" == true ]] && { \
|
||||
@ -222,7 +206,7 @@ CMD echo "${BOILERPLATE}" \
|
||||
--mac-address "${MAC_ADDRESS}" \
|
||||
--width "${WIDTH:-1920}" \
|
||||
--height "${HEIGHT:-1080}" \
|
||||
--output-bootdisk "${BOOTDISK:=/home/arch/OSX-KVM/OpenCore/OpenCore.qcow2}" \
|
||||
--output-bootdisk "${BOOTDISK:=/home/arch/OSX-KVM/OpenCore-Catalina/OpenCore.qcow2}" \
|
||||
|| exit 1 ; } \
|
||||
; { [[ "${DISPLAY}" = ':99' ]] || [[ "${HEADLESS}" == true ]] ; } && { \
|
||||
nohup Xvfb :99 -screen 0 1920x1080x16 \
|
||||
|
22
README.md
22
README.md
@ -8,12 +8,7 @@ Run Mac OS X in Docker with near-native performance! X11 Forwarding! iMessage se
|
||||
|
||||
The Discord is active on #docker-osx and anyone is welcome to come and ask questions, ideas, etc.
|
||||
|
||||
<p align="center">
|
||||
<a href="https://hub.docker.com/r/sickcodes/docker-osx"><img src="https://dockeri.co/image/sickcodes/docker-osx"/></a><a href="https://discord.gg/mx8pPw39Yg"><a href="https://discord.gg/mx8pPw39Yg" target="_blank"><img src="https://raw.githubusercontent.com/sickcodes/Docker-OSX/master/discord-logo.svg"></a></a>
|
||||
</p>
|
||||
|
||||
|
||||
|
||||
[](https://discord.gg/mx8pPw39Yg)
|
||||
|
||||
### Click to join the Discord server [https://discord.gg/mx8pPw39Yg](https://discord.gg/mx8pPw39Yg)
|
||||
|
||||
@ -39,14 +34,10 @@ Extra special thanks to the OpenCore team over at: https://github.com/acidanther
|
||||
|
||||
If you like this project, consider contributing here or upstream!
|
||||
|
||||
<a href="https://hub.docker.com/r/sickcodes/docker-osx"><img src="https://dockeri.co/image/sickcodes/docker-osx"/></a>
|
||||
|
||||
## Quick Start Docker-OSX
|
||||
|
||||
Video setup tutorial is also available here: https://www.youtube.com/watch?v=wLezYl77Ll8
|
||||
|
||||
<p align="center">
|
||||
<a href="https://www.youtube.com/watch?v=wLezYl77Ll8" target="_blank"><img src="https://raw.githubusercontent.com/sickcodes/Docker-OSX/master/Youtube-Screenshot-Docker-OSX-Setup.png"></a>
|
||||
</p>
|
||||
|
||||
First time here? try [initial setup](#initial-setup), otherwise try the instructions below to use either Catalina or Big Sur.
|
||||
|
||||
## Any questions, ideas, or just want to hang out?
|
||||
@ -1094,9 +1085,7 @@ Or tell the container to use specific ones using `-e GENERATE_SPECIFIC=true`
|
||||
-e MAC_ADDRESS="A8:5C:2C:9A:46:2F" \
|
||||
```
|
||||
|
||||
### I'd like to run Docker-OSX on Windows
|
||||
|
||||
Running Docker-OSX on windows is possible just in WSL2 (Windows, Ubuntu).
|
||||
### I'd like to run Docker-OSX with WSL2 (Windows, Ubuntu)
|
||||
|
||||
Ensure KVM is enabled and `x11-apps` is installed.
|
||||
|
||||
@ -1412,6 +1401,9 @@ docker run -it \
|
||||
# Boots in a minute or two!
|
||||
```
|
||||
|
||||
|
||||
```bash
|
||||
|
||||
OR if you have an image already and just want to log in and execute arbitrary commands:
|
||||
|
||||
```bash
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 104 KiB |
Submodule osx-serial-generator updated: f511145c6f...769babcc58
112
tests/Dockerfile
Normal file
112
tests/Dockerfile
Normal file
@ -0,0 +1,112 @@
|
||||
#!/usr/bin/docker
|
||||
# ____ __ ____ ______ __
|
||||
# / __ \____ _____/ /_____ _____/ __ \/ ___/ |/ /
|
||||
# / / / / __ \/ ___/ //_/ _ \/ ___/ / / /\__ \| /
|
||||
# / /_/ / /_/ / /__/ ,< / __/ / / /_/ /___/ / |
|
||||
# /_____/\____/\___/_/|_|\___/_/ \____//____/_/|_| TEST SUITE FOR TESTING SMALL CHANGES
|
||||
#
|
||||
# Title: Docker-OSX (Mac on Docker)
|
||||
# Author: Sick.Codes https://twitter.com/sickcodes
|
||||
# Version: 6.0
|
||||
# License: GPLv3+
|
||||
# Repository: https://github.com/sickcodes/Docker-OSX
|
||||
# Website: https://sick.codes
|
||||
#
|
||||
|
||||
FROM sickcodes/docker-osx:latest
|
||||
|
||||
RUN echo "Replace me" && exit 1
|
||||
|
||||
#### SPECIAL RUNTIME ARGUMENTS BELOW
|
||||
|
||||
# env -e ADDITIONAL_PORTS with a comma
|
||||
# for example, -e ADDITIONAL_PORTS=hostfwd=tcp::23-:23,
|
||||
ENV ADDITIONAL_PORTS=
|
||||
|
||||
# add additional QEMU boot arguments
|
||||
ENV BOOT_ARGS=
|
||||
|
||||
ENV BOOTDISK=
|
||||
|
||||
# edit the CPU that is being emulated
|
||||
ENV CPU=Penryn
|
||||
ENV CPUID_FLAGS='vendor=GenuineIntel,+invtsc,vmware-cpuid-freq=on,+ssse3,+sse4.2,+popcnt,+avx,+aes,+xsave,+xsaveopt,check,'
|
||||
|
||||
ENV DISPLAY=:0.0
|
||||
|
||||
# Deprecated
|
||||
ENV ENV=/env
|
||||
|
||||
# Boolean for generating a bootdisk with new random serials.
|
||||
ENV GENERATE_UNIQUE=false
|
||||
|
||||
# Boolean for generating a bootdisk with specific serials.
|
||||
ENV GENERATE_SPECIFIC=false
|
||||
|
||||
ENV IMAGE_PATH=/home/arch/OSX-KVM/mac_hdd_ng.img
|
||||
ENV IMAGE_FORMAT=qcow2
|
||||
|
||||
ENV KVM='accel=kvm:tcg'
|
||||
|
||||
ENV MASTER_PLIST_URL="https://raw.githubusercontent.com/sickcodes/osx-serial-generator/master/config-nopicker-custom.plist"
|
||||
|
||||
# Add NETDEV for bridged networking option, see https://github.com/sickcodes/Docker-OSX/issues/72
|
||||
# ENV NETDEV='tap,id=net0,ifname=tap0,script=no,downscript=no'
|
||||
# ENV NETDEV='user,id=net0,hostfwd=tcp::${INTERNAL_SSH_PORT:-10022}-:22,hostfwd=tcp::${SCREEN_SHARE_PORT:-5900}-:5900,${ADDITIONAL_PORTS}'
|
||||
|
||||
# ENV NETWORKING=e1000-82545em
|
||||
# renamed to NETWORKING_DEVICE, but not deprecated
|
||||
ENV NETWORKING=vmxnet3
|
||||
ENV NETWORKING_DEVICE=${NETWORKING}
|
||||
|
||||
# boolean for skipping the disk selection menu at in the boot process
|
||||
ENV NOPICKER=false
|
||||
|
||||
# dynamic RAM options for runtime
|
||||
ENV RAM=3
|
||||
# ENV RAM=max
|
||||
# ENV RAM=half
|
||||
|
||||
# The x and y coordinates for resolution.
|
||||
# Must be used with either -e GENERATE_UNIQUE=true or -e GENERATE_SPECIFIC=true.
|
||||
ENV WIDTH=1920
|
||||
ENV HEIGHT=1080
|
||||
|
||||
# libguestfs verbose
|
||||
ENV LIBGUESTFS_DEBUG=1
|
||||
ENV LIBGUESTFS_TRACE=1
|
||||
|
||||
VOLUME ["/tmp/.X11-unix"]
|
||||
|
||||
CMD sudo touch /dev/kvm /dev/snd "${IMAGE_PATH}" "${BOOTDISK}" "${ENV}" 2>/dev/null || true \
|
||||
; sudo chown -R $(id -u):$(id -g) /dev/kvm /dev/snd "${IMAGE_PATH}" "${BOOTDISK}" "${ENV}" 2>/dev/null || true \
|
||||
; [[ "${NOPICKER}" == true ]] && { \
|
||||
sed -i '/^.*InstallMedia.*/d' Launch.sh \
|
||||
&& export BOOTDISK="${BOOTDISK:=/home/arch/OSX-KVM/OpenCore-Catalina/OpenCore-nopicker.qcow2}" \
|
||||
; } \
|
||||
|| export BOOTDISK="${BOOTDISK:=/home/arch/OSX-KVM/OpenCore-Catalina/OpenCore.qcow2}" \
|
||||
; [[ "${GENERATE_UNIQUE}" == true ]] && { \
|
||||
./Docker-OSX/osx-serial-generator/generate-unique-machine-values.sh \
|
||||
--master-plist-url="${MASTER_PLIST_URL}" \
|
||||
--count 1 \
|
||||
--tsv ./serial.tsv \
|
||||
--bootdisks \
|
||||
--width "${WIDTH:-1920}" \
|
||||
--height "${HEIGHT:-1080}" \
|
||||
--output-bootdisk "${BOOTDISK:=/home/arch/OSX-KVM/OpenCore-Catalina/OpenCore.qcow2}" \
|
||||
--output-env "${ENV:=/env}" \
|
||||
|| exit 1 ; } \
|
||||
; [[ "${GENERATE_SPECIFIC}" == true ]] && { \
|
||||
source "${ENV:=/env}" 2>/dev/null \
|
||||
; ./Docker-OSX/osx-serial-generator/generate-specific-bootdisk.sh \
|
||||
--master-plist-url="${MASTER_PLIST_URL}" \
|
||||
--model "${DEVICE_MODEL}" \
|
||||
--serial "${SERIAL}" \
|
||||
--board-serial "${BOARD_SERIAL}" \
|
||||
--uuid "${UUID}" \
|
||||
--mac-address "${MAC_ADDRESS}" \
|
||||
--width "${WIDTH:-1920}" \
|
||||
--height "${HEIGHT:-1080}" \
|
||||
--output-bootdisk "${BOOTDISK:=/home/arch/OSX-KVM/OpenCore-Catalina/OpenCore.qcow2}" \
|
||||
|| exit 1 ; } \
|
||||
; ./enable-ssh.sh && /bin/bash -c ./Launch.sh
|
@ -33,6 +33,7 @@ Flags
|
||||
|
||||
# set -xeuf -o pipefail
|
||||
|
||||
grep -i Ubuntu /proc/version || { echo "DO NOT RUN THIS ON YOUR WORKSTATION, ONLY RUN THIS ON A THROWAWAY SERVER FOR 1 TIME TESTING" && exit 1 ; }
|
||||
|
||||
# gather arguments
|
||||
while (( "$#" )); do
|
||||
@ -215,7 +216,6 @@ docker-osx:latest () {
|
||||
|
||||
docker-osx:naked () {
|
||||
docker build ${NO_CACHE} \
|
||||
--squash \
|
||||
--build-arg RANKMIRRORS=true \
|
||||
--build-arg MIRROR_COUNTRY="${MIRROR_COUNTRY}" \
|
||||
-f ./Dockerfile.naked \
|
||||
@ -226,7 +226,6 @@ docker-osx:naked () {
|
||||
|
||||
docker-osx:naked-auto () {
|
||||
docker build ${NO_CACHE} \
|
||||
--squash \
|
||||
--build-arg RANKMIRRORS=true \
|
||||
--build-arg MIRROR_COUNTRY="${MIRROR_COUNTRY}" \
|
||||
-f ./Dockerfile.naked-auto \
|
||||
@ -274,12 +273,6 @@ docker-osx:auto-big-sur () {
|
||||
}
|
||||
|
||||
reset_docker_hard () {
|
||||
|
||||
tee /etc/docker/daemon.json <<'EOF'
|
||||
{
|
||||
"experimental": true
|
||||
}
|
||||
EOF
|
||||
systemctl disable --now docker
|
||||
systemctl disable --now docker.socket
|
||||
systemctl stop docker
|
||||
@ -306,7 +299,7 @@ export DEBIAN_FRONTEND=noninteractive \
|
||||
; echo start_xvfb \
|
||||
; start_vnc \
|
||||
; enable_kvm \
|
||||
; reset_docker_hard \
|
||||
; echo reset_docker_hard \
|
||||
; echo killall Xvfb \
|
||||
; clone_repo "${BRANCH}" "${REPO}" \
|
||||
; cd Docker-OSX \
|
||||
|
Reference in New Issue
Block a user