aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsickcodes <[email protected]>2021-02-07 19:25:59 +0000
committersickcodes <[email protected]>2021-02-07 19:25:59 +0000
commit7eb821dcc3145d5f3f39075327f0cf2804526480 (patch)
treee963f990e2b7d4802bccc475fde6022df1ea3618
parentRemove pacman -Scc until later. (diff)
downloaddocker-osx-7eb821dcc3145d5f3f39075327f0cf2804526480.tar.xz
docker-osx-7eb821dcc3145d5f3f39075327f0cf2804526480.zip
Add -e NOPICKER=false for the :naked image to be able to enter boot menu.
-rw-r--r--CHANGELOG.md1
-rw-r--r--Dockerfile.naked39
-rw-r--r--README.md16
3 files changed, 41 insertions, 15 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2f3d60e..5b9b64c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,6 @@
|Version|Date|Notes|
|---|---|---|
+| |2021-02-07|Add NOPICKER environment variable to :naked image for effortless boot toggling.|
| |2021-02-07|Add MAC_ADDRESS environment variable.|
| |2021-02-03|Employ wget --no-verbose to avoid buffer overload in hub.docker.com.|
| |2021-02-03|Reduce build size.|
diff --git a/Dockerfile.naked b/Dockerfile.naked
index 9966c33..feae2b4 100644
--- a/Dockerfile.naked
+++ b/Dockerfile.naked
@@ -55,15 +55,25 @@ RUN if [[ "${RANKMIRRORS}" ]]; then { pacman -Sy wget --noconfirm || pacman -Syu
&& tee -a /etc/pacman.d/mirrorlist <<< 'Server = https://mirror.rackspace.com/archlinux/$repo/os/$arch' \
&& cat /etc/pacman.d/mirrorlist ; fi
-RUN pacman -Syu xorg-server-xvfb xterm xorg-xhost xorg-xrandr xdotool sshpass scrot base-devel --noconfirm
-
-RUN git clone https://github.com/stolk/imcat.git \
- && cd imcat \
- && make \
- && sudo cp imcat /usr/bin/imcat \
- && touch /usr/bin/scrotcat \
- && tee -a /usr/bin/scrotcat <<< '/usr/bin/imcat <(scrot -o /dev/stdout)' \
- && chmod +x /usr/bin/scrotcat
+# For taking screenshots of the Xfvb screen, useful during development.
+ARG SCROT
+
+RUN pacman -Syu xorg-server-xvfb wget xterm xorg-xhost xorg-xrandr sshpass --noconfirm \
+ && if [[ "${SCROT}" ]]; then \
+ pacman -Syu scrot base-devel --noconfirm \
+ && git clone https://github.com/stolk/imcat.git \
+ && cd imcat \
+ && make \
+ && sudo cp imcat /usr/bin/imcat \
+ && touch /usr/bin/scrotcat \
+ && tee -a /usr/bin/scrotcat <<< '/usr/bin/imcat <(scrot -o /dev/stdout)' \
+ && chmod +x /usr/bin/scrotcat \
+ ; else \
+ touch /usr/bin/scrotcat \
+ && echo echo >> /usr/bin/scrotcat \
+ && chmod +x /usr/bin/scrotcat \
+ ; fi \
+ ; yes | pacman -Scc
USER arch
@@ -79,16 +89,17 @@ RUN mkdir -p ~/.ssh \
WORKDIR /home/arch/OSX-KVM
-ARG NOPICKER=true
-
-RUN [[ "${NOPICKER}" = true ]] && mv ./Launch-nopicker.sh ./Launch.sh
+ENV NOPICKER=true
ENV DISPLAY=:99
ENV IMAGE_PATH=/image
-CMD [[ "${DISPLAY}" = ':99' ]] && { nohup Xvfb :99 -screen 0 1920x1080x16 \
- & until [[ "$(xrandr --query 2>/dev/null)" ]]; do sleep 1 ; done ; } \
+CMD [[ "${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 \
; ./enable-ssh.sh \
+ ; [[ "${NOPICKER}" == true ]] && mv ./Launch-nopicker.sh ./Launch.sh \
; envsubst < ./Launch.sh | bash
diff --git a/README.md b/README.md
index 8134bbd..57ad3fc 100644
--- a/README.md
+++ b/README.md
@@ -111,7 +111,10 @@ docker start -i containerid
# Quick Start Own Image
-Supply your image with `-v "${PWD}/mac_hdd_ng.img:/image"` and use `sickcodes/docker-osx:naked`
+Supply your own local image with `-v "${PWD}/mac_hdd_ng.img:/image"` and use `sickcodes/docker-osx:naked`
+
+- Naked image is for booting any existing .img file.
+- By default, this image has a variable called `NOPICKER` which is `"true"`. Use `-e NOPICKER=false` or any other string than the word `true` to enter the boot menu. This lets you use other disks instead of skipping the boot menu, e.g. recovery disk.
```bash
docker pull sickcodes/docker-osx:naked
@@ -124,6 +127,17 @@ docker run -it \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e "DISPLAY=${DISPLAY:-:0.0}" \
sickcodes/docker-osx:naked
+
+# run local copy of the auto image + SSH + Boot menu
+docker run -it \
+ --device /dev/kvm \
+ -p 50922:10022 \
+ -v "${PWD}/mac_hdd_ng_auto.img:/image" \
+ -v /tmp/.X11-unix:/tmp/.X11-unix \
+ -e "DISPLAY=${DISPLAY:-:0.0}" \
+ -e "NOPICKER=false" \
+ sickcodes/docker-osx:naked
+
```
```bash
# run your own image headless + SSH