aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Dockerfile.auto34
-rw-r--r--Dockerfile.naked2
-rw-r--r--README.md25
-rw-r--r--vnc-version/Dockerfile8
4 files changed, 39 insertions, 30 deletions
diff --git a/Dockerfile.auto b/Dockerfile.auto
index 417bfec..3a49fe5 100644
--- a/Dockerfile.auto
+++ b/Dockerfile.auto
@@ -115,32 +115,34 @@ CMD echo "${BOILERPLATE}" \
; [[ "${DISPLAY}" = ':99' ]] && { nohup Xvfb :99 -screen 0 1920x1080x16 \
& until [[ "$(xrandr --query 2>/dev/null)" ]]; do sleep 0.1 ; done ; } \
; case "$(file --brief /image)" in \
- QEMU*) export IMAGE_PATH=/image;; \
+ QEMU*) export IMAGE_PATH=/image && sudo chown "$(id -u)":"$(id -g)" "${IMAGE_PATH}" 2>/dev/null || true;; \
directory*) export IMAGE_PATH=/home/arch/OSX-KVM/mac_hdd_ng.img;; \
esac \
; stat "${IMAGE_PATH}" \
; echo "Large image is being copied between layers, please wait a minute..." \
- ; sudo chown "$(id -u)":"$(id -g)" "${IMAGE_PATH}" 2>/dev/null || true \
; ./enable-ssh.sh \
- ; /usr/bin/ssh-keygen -t rsa -f ~/.ssh/id_docker_osx -q -N "" \
- ; chmod 600 ~/.ssh/id_docker_osx \
+ ; [[ -e ~/.ssh/id_docker_osx ]] || { \
+ /usr/bin/ssh-keygen -t rsa -f ~/.ssh/id_docker_osx -q -N "" \
+ && chmod 600 ~/.ssh/id_docker_osx \
+ ; } \
; envsubst < ./Launch.sh | bash \
& echo "Booting Docker-OSX in the background. Please wait..." \
; until [[ "$(sshpass -palpine ssh-copy-id -f -i ~/.ssh/id_docker_osx.pub -p 10022 [email protected])" ]]; do \
- scrotcat \
- ; echo "Waiting to copy SSH key into OSX..." \
+ echo "Disk is being copied between layers. Repeating until able to copy SSH key into OSX..." \
; sleep 1 \
; done \
- ; tee -a ~/.ssh/config <<< 'Host 127.0.0.1' \
- ; tee -a ~/.ssh/config <<< ' User user' \
- ; tee -a ~/.ssh/config <<< ' Port 10022' \
- ; tee -a ~/.ssh/config <<< ' IdentityFile ~/.ssh/id_docker_osx' \
- ; tee -a ~/.ssh/config <<< ' StrictHostKeyChecking no' \
- ; tee -a ~/.ssh/config <<< ' UserKnownHostsFile=/dev/null' \
- ; echo 'Default username: user' \
- ; echo 'Default password: alpine' \
- ; echo 'Change it immediately using the command: passwd' \
- ; ssh -i ~/.ssh/id_docker_osx [email protected] -p 10022
+ ; grep id_docker_osx ~/.ssh/config || { \
+ tee -a ~/.ssh/config <<< 'Host 127.0.0.1' \
+ ; tee -a ~/.ssh/config <<< ' User user' \
+ ; tee -a ~/.ssh/config <<< ' Port 10022' \
+ ; tee -a ~/.ssh/config <<< ' IdentityFile ~/.ssh/id_docker_osx' \
+ ; tee -a ~/.ssh/config <<< ' StrictHostKeyChecking no' \
+ ; tee -a ~/.ssh/config <<< ' UserKnownHostsFile=/dev/null' \
+ ; } \
+ && echo 'Default username: user' \
+ && echo 'Default password: alpine' \
+ && echo 'Change it immediately using the command: passwd' \
+ && ssh -i ~/.ssh/id_docker_osx [email protected] -p 10022 "${OSX_COMMANDS}"
# username: user
# password: alpine
diff --git a/Dockerfile.naked b/Dockerfile.naked
index 838e64c..9966c33 100644
--- a/Dockerfile.naked
+++ b/Dockerfile.naked
@@ -88,7 +88,7 @@ ENV DISPLAY=:99
ENV IMAGE_PATH=/image
CMD [[ "${DISPLAY}" = ':99' ]] && { nohup Xvfb :99 -screen 0 1920x1080x16 \
- & until [[ "$(xrandr --query 2>/dev/null)" ]]; do sleep 0.1 ; done ; } \
+ & 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 \
; envsubst < ./Launch.sh | bash
diff --git a/README.md b/README.md
index c3c5111..d9e2591 100644
--- a/README.md
+++ b/README.md
@@ -21,10 +21,10 @@ Docker Hub: https://hub.docker.com/r/sickcodes/docker-osx
# Quick Start Docker-OSX
-`sickcodes/docker-osx:latest`
-
```bash
+docker pull sickcodes/docker-osx:latest
+
docker run -it \
--device /dev/kvm \
-p 50922:10022 \
@@ -38,13 +38,15 @@ docker run -it \
# Quick Start 22GB Pre-Made Image
-`sickcodes/docker-osx:auto`
You will need around 50GB of space: half for the base image + half for your runtime image.
If you run out of space, you can nuke your Docker images/history/cache by simply deleting `/var/lib/docker`
```bash
+
+docker pull sickcodes/docker-osx:auto
+
# boot straight to OSX shell with no display (19GB)
docker run -it \
--device /dev/kvm \
@@ -55,25 +57,37 @@ docker run -it \
```
```bash
-# boot to OSX shell + display (19GB)
+# boot to OSX shell + display (19GB) + commands to run inside OSX
docker run -it \
--device /dev/kvm \
-p 50922:10022 \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e "DISPLAY=${DISPLAY:-:0.0}" \
+ -e "OSX_COMMANDS=/bin/bash -c \"pwd && uname -a\""
sickcodes/docker-osx:auto
# Boots in a minute or two!
```
+### Restart an auto container
+
+```bash
+# find last container
+docker ps -a
+
+# docker start old container with -i for interactive
+docker start -i containerid
+
+```
# Quick Start Own Image
-`sickcodes/docker-osx:naked`
Supply your image with `-v "${PWD}/mac_hdd_ng.img:/image"` and use `sickcodes/docker-osx:naked`
```bash
+docker pull sickcodes/docker-osx:naked
+
# run your own image + SSH
docker run -it \
--device /dev/kvm \
@@ -97,7 +111,6 @@ docker run -it \
- sickcodes/docker-osx:latest - original base recovery image (safe)
- sickcodes/docker-osx:naked - supply your own .img file (safe)
- sickcodes/docker-osx:auto - 22gb image boot to OSX shell (must trust @sickcodes)
-- Full auto mode: boot straight to OSX shell.
- Supply your own image using -v $PWD/disk.img:/image
- Kubernetes Helm Chart. [See ./helm](https://github.com/sickcodes/Docker-OSX/tree/master/helm)
- OSX-KVM
diff --git a/vnc-version/Dockerfile b/vnc-version/Dockerfile
index 747fb55..bea056d 100644
--- a/vnc-version/Dockerfile
+++ b/vnc-version/Dockerfile
@@ -121,10 +121,4 @@ RUN printf '\n\n\n\n%s\n%s\n\n\n\n' '===========VNC_PASSWORD========== ' "$(<vnc
WORKDIR /home/arch/OSX-KVM
-VOLUME /image
-
-CMD case "$(file --brief /image)" in \
- QEMU*) export IMAGE_PATH=/image;; \
- directory*) export IMAGE_PATH=/home/arch/OSX-KVM/mac_hdd_ng.img;; \
- esac \
- ; ./enable-ssh.sh && envsubst < ./Launch_custom.sh | bash
+CMD ./enable-ssh.sh && envsubst < ./Launch_custom.sh | bash