From 23ab20c2fa5883dc6dd32300fde1d65bc50f9cfe Mon Sep 17 00:00:00 2001 From: sickcodes Date: Thu, 25 Feb 2021 14:03:06 +0000 Subject: Major serial number runtime generation and override changes. --- Dockerfile.naked | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) (limited to 'Dockerfile.naked') diff --git a/Dockerfile.naked b/Dockerfile.naked index 06f9b9e..2bb8783 100644 --- a/Dockerfile.naked +++ b/Dockerfile.naked @@ -7,7 +7,7 @@ # # Title: Mac on Docker (Docker-OSX) [AUTOINSTALL] # Author: Sick.Codes https://twitter.com/sickcodes -# Version: 3.1 +# Version: 3.2 # License: GPLv3+ # Repository: https://github.com/sickcodes/Docker-OSX # @@ -29,7 +29,7 @@ # docker run -it --device /dev/kvm -p 50922:10022 -v ${PWD}/mac_hdd_ng.img:/image -e "DISPLAY=${DISPLAY:-:0.0}" -v /tmp/.X11-unix:/tmp/.X11-unix docker-osx:naked # -FROM sickcodes/docker-osx:latest +FROM docker-osx:latest MAINTAINER 'https://twitter.com/sickcodes' @@ -112,6 +112,29 @@ CMD [[ "${DISPLAY}" = ':99' ]] && { \ & until [[ "$(xrandr --query 2>/dev/null)" ]]; do sleep 1 ; done \ ; } \ ; sudo chown "$(id -u)":"$(id -g)" "${IMAGE_PATH}" 2>/dev/null || true \ - ; ./enable-ssh.sh \ ; [[ "${NOPICKER}" == true ]] && mv ./Launch-nopicker.sh ./Launch.sh \ - ; envsubst < ./Launch.sh | bash + ; [[ "${GENERATE_UNIQUE}" == true ]] \ + && ./Docker-OSX/custom/generate-unique-machine-values.sh \ + --count 1 \ + --tsv ./serial.tsv \ + --bootdisks \ + --output-bootdisk "${BOOTDISK:-/home/arch/OSX-KVM/OpenCore-Catalina/OpenCore.qcow2}" \ + --output-env "${ENV:=/env}" \ + && source "${ENV}" \ + ; [[ "${GENERATE_SPECIFIC}" == true ]] \ + && source /env \ + || ./Docker-OSX/custom/generate-specific-bootdisk.sh \ + --model "${DEVICE_MODEL}" \ + --serial "${SERIAL}" \ + --board-serial "${BOARD_SERIAL}" \ + --uuid "${UUID}" \ + --mac-address "${MAC_ADDRESS}" \ + --output-bootdisk "${BOOTDISK:-/home/arch/OSX-KVM/OpenCore-Catalina/OpenCore.qcow2}" \ + ; case "$(file --brief /bootdisk)" in \ + QEMU\ QCOW2\ Image* ) export BOOTDISK=/bootdisk \ + ; sudo chown "$(id -u)":"$(id -g)" "${BOOTDISK}" 2>/dev/null || true \ + ;; \ + directory* ) export BOOTDISK=/home/arch/OSX-KVM/OpenCore-Catalina/OpenCore.qcow2 \ + ;; \ + esac \ + ; ./enable-ssh.sh && envsubst < ./Launch.sh | bash -- cgit v1.2.3 From 284fe9fbde6fd3449aee1580179e789cc6df4ccf Mon Sep 17 00:00:00 2001 From: sickcodes Date: Thu, 25 Feb 2021 15:17:52 +0000 Subject: Early chown required for all volumes... --- Dockerfile.naked | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'Dockerfile.naked') diff --git a/Dockerfile.naked b/Dockerfile.naked index 2bb8783..5c76e75 100644 --- a/Dockerfile.naked +++ b/Dockerfile.naked @@ -107,11 +107,11 @@ ENV DISPLAY=:99 ENV IMAGE_PATH=/image -CMD [[ "${DISPLAY}" = ':99' ]] && { \ +CMD sudo chown "$(id -u)":"$(id -g)" "${IMAGE_PATH}" "${BOOTDISK}" 2>/dev/null || true \ + ; [[ "${DISPLAY}" = ':99' ]] && { \ nohup Xvfb :99 -screen 0 1920x1080x16 \ & until [[ "$(xrandr --query 2>/dev/null)" ]]; do sleep 1 ; done \ ; } \ - ; sudo chown "$(id -u)":"$(id -g)" "${IMAGE_PATH}" 2>/dev/null || true \ ; [[ "${NOPICKER}" == true ]] && mv ./Launch-nopicker.sh ./Launch.sh \ ; [[ "${GENERATE_UNIQUE}" == true ]] \ && ./Docker-OSX/custom/generate-unique-machine-values.sh \ @@ -132,7 +132,6 @@ CMD [[ "${DISPLAY}" = ':99' ]] && { \ --output-bootdisk "${BOOTDISK:-/home/arch/OSX-KVM/OpenCore-Catalina/OpenCore.qcow2}" \ ; case "$(file --brief /bootdisk)" in \ QEMU\ QCOW2\ Image* ) export BOOTDISK=/bootdisk \ - ; sudo chown "$(id -u)":"$(id -g)" "${BOOTDISK}" 2>/dev/null || true \ ;; \ directory* ) export BOOTDISK=/home/arch/OSX-KVM/OpenCore-Catalina/OpenCore.qcow2 \ ;; \ -- cgit v1.2.3 From c5aab3020d28c344912e0719f0c4b9059361d633 Mon Sep 17 00:00:00 2001 From: sickcodes Date: Thu, 25 Feb 2021 18:16:24 +0000 Subject: Set defaults in obvious places --- Dockerfile.naked | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'Dockerfile.naked') diff --git a/Dockerfile.naked b/Dockerfile.naked index 5c76e75..cc4b8fd 100644 --- a/Dockerfile.naked +++ b/Dockerfile.naked @@ -101,12 +101,16 @@ RUN mkdir -p ~/.ssh \ && tee -a ~/.ssh/config <<< ' StrictHostKeyChecking no' \ && tee -a ~/.ssh/config <<< ' UserKnownHostsFile=/dev/null' -ENV NOPICKER=true +ENV BOOTDISK=/home/arch/OSX-KVM/OpenCore-Catalina/OpenCore.qcow2 ENV DISPLAY=:99 +ENV ENV=/env + ENV IMAGE_PATH=/image +ENV NOPICKER=true + CMD sudo chown "$(id -u)":"$(id -g)" "${IMAGE_PATH}" "${BOOTDISK}" 2>/dev/null || true \ ; [[ "${DISPLAY}" = ':99' ]] && { \ nohup Xvfb :99 -screen 0 1920x1080x16 \ -- cgit v1.2.3 From a651aa0369a5875a900a02deba319e4e0074d0d5 Mon Sep 17 00:00:00 2001 From: sickcodes Date: Fri, 26 Feb 2021 04:22:56 +0000 Subject: Change `-e NOPICKER=true` to simply do `export BOOTDISK=/home/arch/OSX-KVM/OpenCore-Catalina/OpenCore-nopicker.qcow2`. --- Dockerfile.naked | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Dockerfile.naked') diff --git a/Dockerfile.naked b/Dockerfile.naked index cc4b8fd..4ae385b 100644 --- a/Dockerfile.naked +++ b/Dockerfile.naked @@ -29,7 +29,7 @@ # docker run -it --device /dev/kvm -p 50922:10022 -v ${PWD}/mac_hdd_ng.img:/image -e "DISPLAY=${DISPLAY:-:0.0}" -v /tmp/.X11-unix:/tmp/.X11-unix docker-osx:naked # -FROM docker-osx:latest +FROM sickcodes/docker-osx:latest MAINTAINER 'https://twitter.com/sickcodes' -- cgit v1.2.3 From f2a49b046bb44198a0c61b27e3b1ded13312ced2 Mon Sep 17 00:00:00 2001 From: sickcodes Date: Fri, 26 Feb 2021 05:26:35 +0000 Subject: Fixed subshell logic in startup scripts. --- Dockerfile.naked | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'Dockerfile.naked') diff --git a/Dockerfile.naked b/Dockerfile.naked index 4ae385b..b31c4ad 100644 --- a/Dockerfile.naked +++ b/Dockerfile.naked @@ -116,17 +116,18 @@ CMD sudo chown "$(id -u)":"$(id -g)" "${IMAGE_PATH}" "${BOOTDISK}" 2>/dev/null | nohup Xvfb :99 -screen 0 1920x1080x16 \ & until [[ "$(xrandr --query 2>/dev/null)" ]]; do sleep 1 ; done \ ; } \ - ; [[ "${NOPICKER}" == true ]] && mv ./Launch-nopicker.sh ./Launch.sh \ - ; [[ "${GENERATE_UNIQUE}" == true ]] \ - && ./Docker-OSX/custom/generate-unique-machine-values.sh \ + ; [[ "${NOPICKER}" == true ]] && export BOOTDISK=/home/arch/OSX-KVM/OpenCore-Catalina/OpenCore-nopicker.qcow2 \ + ; [[ "${GENERATE_UNIQUE}" == true ]] && { \ + ./Docker-OSX/custom/generate-unique-machine-values.sh \ --count 1 \ --tsv ./serial.tsv \ --bootdisks \ --output-bootdisk "${BOOTDISK:-/home/arch/OSX-KVM/OpenCore-Catalina/OpenCore.qcow2}" \ --output-env "${ENV:=/env}" \ - && source "${ENV}" \ - ; [[ "${GENERATE_SPECIFIC}" == true ]] \ - && source /env \ + && source "${ENV}" \ + ; } \ + ; [[ "${GENERATE_SPECIFIC}" == true ]] && { \ + source /env \ || ./Docker-OSX/custom/generate-specific-bootdisk.sh \ --model "${DEVICE_MODEL}" \ --serial "${SERIAL}" \ @@ -134,6 +135,7 @@ CMD sudo chown "$(id -u)":"$(id -g)" "${IMAGE_PATH}" "${BOOTDISK}" 2>/dev/null | --uuid "${UUID}" \ --mac-address "${MAC_ADDRESS}" \ --output-bootdisk "${BOOTDISK:-/home/arch/OSX-KVM/OpenCore-Catalina/OpenCore.qcow2}" \ + ; } \ ; case "$(file --brief /bootdisk)" in \ QEMU\ QCOW2\ Image* ) export BOOTDISK=/bootdisk \ ;; \ -- cgit v1.2.3 From 84326051cae737c7897823b2aabf5dc2c711cfa9 Mon Sep 17 00:00:00 2001 From: sickcodes Date: Fri, 26 Feb 2021 05:30:09 +0000 Subject: source "${ENV:=/env}" logic --- Dockerfile.naked | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'Dockerfile.naked') diff --git a/Dockerfile.naked b/Dockerfile.naked index b31c4ad..7c755e4 100644 --- a/Dockerfile.naked +++ b/Dockerfile.naked @@ -124,10 +124,9 @@ CMD sudo chown "$(id -u)":"$(id -g)" "${IMAGE_PATH}" "${BOOTDISK}" 2>/dev/null | --bootdisks \ --output-bootdisk "${BOOTDISK:-/home/arch/OSX-KVM/OpenCore-Catalina/OpenCore.qcow2}" \ --output-env "${ENV:=/env}" \ - && source "${ENV}" \ ; } \ ; [[ "${GENERATE_SPECIFIC}" == true ]] && { \ - source /env \ + source "${ENV}" \ || ./Docker-OSX/custom/generate-specific-bootdisk.sh \ --model "${DEVICE_MODEL}" \ --serial "${SERIAL}" \ -- cgit v1.2.3 From d1721028c8ca06d748e9e78c96b01bd8635a37bc Mon Sep 17 00:00:00 2001 From: sickcodes Date: Fri, 26 Feb 2021 05:49:40 +0000 Subject: NOPICKER now does: `sed -i '/^.*InstallMedia.*/d' Launch.sh` --- Dockerfile.naked | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'Dockerfile.naked') diff --git a/Dockerfile.naked b/Dockerfile.naked index 7c755e4..0ebc65e 100644 --- a/Dockerfile.naked +++ b/Dockerfile.naked @@ -116,7 +116,10 @@ CMD sudo chown "$(id -u)":"$(id -g)" "${IMAGE_PATH}" "${BOOTDISK}" 2>/dev/null | nohup Xvfb :99 -screen 0 1920x1080x16 \ & until [[ "$(xrandr --query 2>/dev/null)" ]]; do sleep 1 ; done \ ; } \ - ; [[ "${NOPICKER}" == true ]] && export BOOTDISK=/home/arch/OSX-KVM/OpenCore-Catalina/OpenCore-nopicker.qcow2 \ + ; [[ "${NOPICKER}" == true ]] && { \ + sed -i '/^.*InstallMedia.*/d' Launch.sh \ + && export BOOTDISK=/home/arch/OSX-KVM/OpenCore-Catalina/OpenCore-nopicker.qcow2 \ + ; } \ ; [[ "${GENERATE_UNIQUE}" == true ]] && { \ ./Docker-OSX/custom/generate-unique-machine-values.sh \ --count 1 \ @@ -126,7 +129,7 @@ CMD sudo chown "$(id -u)":"$(id -g)" "${IMAGE_PATH}" "${BOOTDISK}" 2>/dev/null | --output-env "${ENV:=/env}" \ ; } \ ; [[ "${GENERATE_SPECIFIC}" == true ]] && { \ - source "${ENV}" \ + source "${ENV:=/env}" \ || ./Docker-OSX/custom/generate-specific-bootdisk.sh \ --model "${DEVICE_MODEL}" \ --serial "${SERIAL}" \ -- cgit v1.2.3 From 258f6b455d14aeb449260b668a9d16478a48ac5c Mon Sep 17 00:00:00 2001 From: sickcodes Date: Fri, 26 Feb 2021 06:42:57 +0000 Subject: Fix /env permissions for persistence after GENERATE_UNIQUE. Fix the following warning by chowning /dev/kvm earlier "libguestfs: warning: current user is not a member of the KVM group (group ID 108). This user cannot access /dev/kvm, so libguestfs may run very slowly. It is recommended that you 'chmod 0666 /dev/kvm' or add the current user to the KVM group (you might need to log out and log in again)." --- Dockerfile.naked | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Dockerfile.naked') diff --git a/Dockerfile.naked b/Dockerfile.naked index 0ebc65e..5c17c93 100644 --- a/Dockerfile.naked +++ b/Dockerfile.naked @@ -111,7 +111,7 @@ ENV IMAGE_PATH=/image ENV NOPICKER=true -CMD sudo chown "$(id -u)":"$(id -g)" "${IMAGE_PATH}" "${BOOTDISK}" 2>/dev/null || true \ +CMD sudo chown -R $(id -u):$(id -g) /dev/kvm /dev/snd "${IMAGE_PATH}" "${BOOTDISK}" "${ENV}" 2>/dev/null || true \ ; [[ "${DISPLAY}" = ':99' ]] && { \ nohup Xvfb :99 -screen 0 1920x1080x16 \ & until [[ "$(xrandr --query 2>/dev/null)" ]]; do sleep 1 ; done \ -- cgit v1.2.3 From 91131a6bbbe92615852e14e4b8e427ebe743f3a5 Mon Sep 17 00:00:00 2001 From: sickcodes Date: Fri, 26 Feb 2021 09:25:40 +0000 Subject: Add exists exits and required serial number files for building disk --- Dockerfile.naked | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'Dockerfile.naked') diff --git a/Dockerfile.naked b/Dockerfile.naked index 5c17c93..04368bc 100644 --- a/Dockerfile.naked +++ b/Dockerfile.naked @@ -126,7 +126,7 @@ CMD sudo chown -R $(id -u):$(id -g) /dev/kvm /dev/snd "${IMAGE_PATH}" "${BOOTDIS --tsv ./serial.tsv \ --bootdisks \ --output-bootdisk "${BOOTDISK:-/home/arch/OSX-KVM/OpenCore-Catalina/OpenCore.qcow2}" \ - --output-env "${ENV:=/env}" \ + --output-env "${ENV:=/env}" || exit 1 \ ; } \ ; [[ "${GENERATE_SPECIFIC}" == true ]] && { \ source "${ENV:=/env}" \ @@ -136,7 +136,7 @@ CMD sudo chown -R $(id -u):$(id -g) /dev/kvm /dev/snd "${IMAGE_PATH}" "${BOOTDIS --board-serial "${BOARD_SERIAL}" \ --uuid "${UUID}" \ --mac-address "${MAC_ADDRESS}" \ - --output-bootdisk "${BOOTDISK:-/home/arch/OSX-KVM/OpenCore-Catalina/OpenCore.qcow2}" \ + --output-bootdisk "${BOOTDISK:-/home/arch/OSX-KVM/OpenCore-Catalina/OpenCore.qcow2}" || exit 1 \ ; } \ ; case "$(file --brief /bootdisk)" in \ QEMU\ QCOW2\ Image* ) export BOOTDISK=/bootdisk \ -- cgit v1.2.3