aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorsickcodes <[email protected]>2021-03-04 13:46:58 +0000
committerGitHub <[email protected]>2021-03-04 13:46:58 +0000
commit3add4f7a98627a998ec0eb7c5fafaad7adbd2ae3 (patch)
tree514d20ef243ac55228cd4dac3e7fd0daa02f8fa3 /README.md
parentMerge pull request #162 from sickcodes/additional-ports (diff)
parentTypo (diff)
downloaddocker-osx-3add4f7a98627a998ec0eb7c5fafaad7adbd2ae3.tar.xz
docker-osx-3add4f7a98627a998ec0eb7c5fafaad7adbd2ae3.zip
Merge pull request #163 from sickcodes/resolution-changes-runtime
Add WIDTH and HEIGHT environment variables
Diffstat (limited to 'README.md')
-rw-r--r--README.md137
1 files changed, 136 insertions, 1 deletions
diff --git a/README.md b/README.md
index 3a8b604..9a2c07c 100644
--- a/README.md
+++ b/README.md
@@ -493,6 +493,43 @@ sudo nohup dockerd &
sudo systemctl enable docker
```
+# How to Forward Additional Ports from the guest.
+
+This is how it visually looks:
+
+`host:10023 <-> 10023:container:10023 <-> 80:guest`
+
+```bash
+On the host
+```bash
+docker run -it \
+ --device /dev/kvm \
+ -p 50922:10022 \
+ -e ADDITIONAL_PORTS='hostfwd=tcp::10023-:80,' \
+ -p 10023:10023 \
+ sickcodes/docker-osx:auto
+```
+
+Inside the container:
+```bash
+/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
+
+brew install nginx
+sudo sed -i -e 's/8080/80/' /usr/local/etc/nginx/nginx.confcd
+# sudo nginx -s stop
+sudo nginx
+```
+
+nginx should appear on the host at port 10023.
+
+You can string multiple statements, for example:
+
+```bash
+ -e ADDITIONAL_PORTS='hostfwd=tcp::10023-:80,hostfwd=tcp::10043-:443,'
+ -p 10023:10023 \
+ -p 10043:10043 \
+```
+
# How to Enable Network Forwarding
Allow ipv4 forwarding for bridged networking connections:
@@ -706,11 +743,13 @@ For serial numbers, generate them in `./custom` OR make docker generate them at
At any time, verify your serial number before logging in iCloud, etc.
```bash
+# this is a quick way to check your serial number via cli inside OSX
ioreg -l | grep IOPlatformSerialNumber
# or from the host
-sshpass -p alpine ssh user@localhost -p 50922 'ioreg -l | grep IOPlatformSerialNumber'
+sshpass -p 'alpine' ssh user@localhost -p 50922 'ioreg -l | grep IOPlatformSerialNumber'
```
+# This example generates a random set of serial numbers at runtime, headlessly
```bash
# proof of concept only, generates random serial numbers, headlessly, and quits right after.
@@ -724,6 +763,8 @@ docker run --rm -it \
sickcodes/docker-osx:auto
```
+# This example generates a specific set of serial numbers at runtime
+
```bash
# run the same as above 17gb auto image, with SSH, with nopicker, and save the bootdisk for later.
# you don't need to save the bootdisk IF you supply specific serial numbers!
@@ -743,6 +784,7 @@ docker run -it \
sickcodes/docker-osx:auto
```
+### This example generates a specific set of serial numbers at runtime, with your existing image, at 1000x1000 display resolution.
```bash
# run an existing image in current directory, with a screen, with SSH, with nopicker, and save the bootdisk for later.
@@ -762,6 +804,8 @@ docker run -it \
-e BOARD_SERIAL="C027251024NJG36UE" \
-e UUID="5CCB366D-9118-4C61-A00A-E5BAF3BED451" \
-e MAC_ADDRESS="A8:5C:2C:9A:46:2F" \
+ -e WIDTH=1000 \
+ -e HEIGHT=1000 \
-e BOOTDISK=/bootdisk \
-v "${PWD}/mynewbootdisk.qcow:/bootdisk" \
-v "${PWD}/mac_hdd_ng.img:/image" \
@@ -876,6 +920,97 @@ generate-specific-bootdisk.sh \
--output-bootdisk OpenCore-nopicker.qcow2
```
+# Change Resolution Docker-OSX - change resolution OpenCore OSX-KVM
+
+The display resolution is controlled by this line:
+
+https://github.com/sickcodes/Docker-OSX/blob/master/custom/config-nopicker-custom.plist#L819
+
+Instead of mounting that disk, Docker-OSX will generate a new `OpenCore.qcow2` by using this one cool trick:
+
+```bash
+-e GENERATE_UNIQUE=true \
+-e WIDTH=800 \
+-e HEIGHT=600 \
+```
+
+To use `WIDTH`/`HEIGHT`, you must use with either `-e GENERATE_UNIQUE=true` or `-e GENERATE_SPECIFIC=true`.
+
+It will take around 30 seconds longer to boot because it needs to make a new boot partition using `libguestfs`.
+
+```bash
+-e GENERATE_SPECIFIC=true \
+-e WIDTH=1920 \
+-e HEIGHT=1080 \
+-e SERIAL="" \
+-e BOARD_SERIAL="" \
+-e UUID="" \
+-e MAC_ADDRESS="" \
+```
+
+## Change Docker-OSX Resolution Examples
+
+```bash
+# using an image in your current directory
+stat mac_hdd_ng.img
+
+docker run -it \
+ --device /dev/kvm \
+ -p 50922:10022 \
+ -v "${PWD}/mac_hdd_ng.img:/image" \
+ -v /tmp/.X11-unix:/tmp/.X11-unix \
+ -e "DISPLAY=${DISPLAY:-:0.0}" \
+ -e GENERATE_SPECIFIC=true \
+ -e DEVICE_MODEL="iMacPro1,1" \
+ -e SERIAL="C02TW0WAHX87" \
+ -e BOARD_SERIAL="C027251024NJG36UE" \
+ -e UUID="5CCB366D-9118-4C61-A00A-E5BAF3BED451" \
+ -e MAC_ADDRESS="A8:5C:2C:9A:46:2F" \
+ -e MASTER_PLIST_URL=https://raw.githubusercontent.com/sickcodes/Docker-OSX/master/custom/config-nopicker-custom.plist \
+ -e WIDTH=1600 \
+ -e HEIGHT=900 \
+ sickcodes/docker-osx:naked
+```
+
+```bash
+# generating random serial numbers, using the DIY installer, along with the screen resolution changes.
+docker run -it \
+ --device /dev/kvm \
+ -p 50922:10022 \
+ -v /tmp/.X11-unix:/tmp/.X11-unix \
+ -e "DISPLAY=${DISPLAY:-:0.0}" \
+ -e GENERATE_UNIQUE=true \
+ -e WIDTH=800 \
+ -e HEIGHT=600 \
+ sickcodes/docker-osx:latest
+
+
+```
+
+
+Here's a few other resolutions! If you resolution is invalid, it will default to 800x600.
+
+```
+ -e WIDTH=800 \
+ -e HEIGHT=600 \
+```
+```
+ -e WIDTH=1280 \
+ -e HEIGHT=768 \
+```
+```
+ -e WIDTH=1600 \
+ -e HEIGHT=900 \
+```
+```
+ -e WIDTH=1920 \
+ -e HEIGHT=1080 \
+```
+```
+ -e WIDTH=2560 \
+ -e HEIGHT=1600 \
+```
+
# Allow USB passthrough
The simplest way to do this is the following: