aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsickcodes <[email protected]>2021-08-27 16:13:04 +0000
committersickcodes <[email protected]>2021-08-27 16:13:04 +0000
commit31c95fd640f70c657235f7440eca173500c6c9ae (patch)
treed3868202f7aba5bd3be3bb8a7e7557f0bc2ef5d1
parentMerge pull request #334 from mcandre/patch-1 (diff)
downloaddocker-osx-31c95fd640f70c657235f7440eca173500c6c9ae.tar.xz
docker-osx-31c95fd640f70c657235f7440eca173500c6c9ae.zip
Fix MAC_PASSWORD variable name (should be PASSWORD), Add docs for folder sharing
-rw-r--r--CREDITS.md1
-rw-r--r--Dockerfile.auto2
-rw-r--r--Dockerfile.naked19
-rw-r--r--Dockerfile.naked-auto14
-rw-r--r--README.md144
5 files changed, 119 insertions, 61 deletions
diff --git a/CREDITS.md b/CREDITS.md
index 55a5ca3..851d3c8 100644
--- a/CREDITS.md
+++ b/CREDITS.md
@@ -88,4 +88,5 @@ This project now uses the fantastic OpenCore bootloader from the community OpenC
[@allansrc](https://github.com/allansrc) - Update Doc detail for run on WLS #318
+[@mcandre](https://github.com/mcandre) - fix typo #334
diff --git a/Dockerfile.auto b/Dockerfile.auto
index cc023d8..60dde95 100644
--- a/Dockerfile.auto
+++ b/Dockerfile.auto
@@ -240,7 +240,7 @@ CMD echo "${BOILERPLATE}" \
; } \
; /bin/bash -c ./Launch.sh \
& echo "Booting Docker-OSX in the background. Please wait..." \
- ; until [[ "$(sshpass -p${MAC_PASSWORD} ssh-copy-id -f -i ~/.ssh/id_docker_osx.pub -p 10022 ${USERNAME}@127.0.0.1)" ]]; do \
+ ; until [[ "$(sshpass -p${PASSWORD:=alpine} ssh-copy-id -f -i ~/.ssh/id_docker_osx.pub -p 10022 ${USERNAME:=user}@127.0.0.1)" ]]; do \
echo "Disk is being copied between layers. Repeating until able to copy SSH key into OSX..." \
; sleep 1 \
; done \
diff --git a/Dockerfile.naked b/Dockerfile.naked
index 7f2dbb2..7f485de 100644
--- a/Dockerfile.naked
+++ b/Dockerfile.naked
@@ -46,15 +46,16 @@ ARG RANKMIRRORS
ARG MIRROR_COUNTRY=US
ARG MIRROR_COUNT=10
RUN if [[ "${RANKMIRRORS}" ]]; then { pacman -Sy wget --noconfirm || pacman -Syu wget --noconfirm ; } \
- ; wget -O ./rankmirrors "https://raw.githubusercontent.com/sickcodes/Docker-OSX/master/rankmirrors" \
- ; wget -O- "https://www.archlinux.org/mirrorlist/?country=${MIRROR_COUNTRY:-US}&protocol=https&use_mirror_status=on" \
- | sed -e 's/^#Server/Server/' -e '/^#/d' \
- | head -n "$((${MIRROR_COUNT:-10}+1))" \
- | bash ./rankmirrors --verbose --max-time 5 - > /etc/pacman.d/mirrorlist \
- && tee -a /etc/pacman.d/mirrorlist <<< 'Server = http://mirrors.evowise.com/archlinux/$repo/os/$arch' \
- && tee -a /etc/pacman.d/mirrorlist <<< 'Server = http://mirror.rackspace.com/archlinux/$repo/os/$arch' \
- && tee -a /etc/pacman.d/mirrorlist <<< 'Server = https://mirror.rackspace.com/archlinux/$repo/os/$arch' \
- && cat /etc/pacman.d/mirrorlist ; fi
+ ; wget -O ./rankmirrors "https://raw.githubusercontent.com/sickcodes/Docker-OSX/master/rankmirrors" \
+ ; wget -O- "https://www.archlinux.org/mirrorlist/?country=${MIRROR_COUNTRY:-US}&protocol=https&use_mirror_status=on" \
+ | sed -e 's/^#Server/Server/' -e '/^#/d' \
+ | head -n "$((${MIRROR_COUNT:-10}+1))" \
+ | bash ./rankmirrors --verbose --max-time 5 - > /etc/pacman.d/mirrorlist \
+ && tee -a /etc/pacman.d/mirrorlist <<< 'Server = http://mirrors.evowise.com/archlinux/$repo/os/$arch' \
+ && tee -a /etc/pacman.d/mirrorlist <<< 'Server = http://mirror.rackspace.com/archlinux/$repo/os/$arch' \
+ && tee -a /etc/pacman.d/mirrorlist <<< 'Server = https://mirror.rackspace.com/archlinux/$repo/os/$arch' \
+ && cat /etc/pacman.d/mirrorlist \
+ ; fi
# For taking screenshots of the Xfvb screen, useful during development.
ARG SCROT
diff --git a/Dockerfile.naked-auto b/Dockerfile.naked-auto
index 4bf2d03..3098e45 100644
--- a/Dockerfile.naked-auto
+++ b/Dockerfile.naked-auto
@@ -152,6 +152,10 @@ ENV NETWORKING=vmxnet3
ENV NOPICKER=true
+# set the username and password for automatically logging in
+ENV USERNAME=user
+ENV PASSWORD=alpine
+
# dynamic RAM options for runtime
ENV RAM=3
# ENV RAM=max
@@ -175,10 +179,6 @@ CMD echo "${BOILERPLATE}" \
; echo "Disk is being copied between layers... Please wait a minute..." \
; 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 \
- ; { [[ "${DISPLAY}" = ':99' ]] || [[ "${HEADLESS}" == true ]] ; } && { \
- nohup Xvfb :99 -screen 0 1920x1080x16 \
- & until [[ "$(xrandr --query 2>/dev/null)" ]]; do sleep 1 ; done \
- ; } \
; [[ "${NOPICKER}" == true ]] && { \
sed -i '/^.*InstallMedia.*/d' Launch.sh \
&& export BOOTDISK="${BOOTDISK:=/home/arch/OSX-KVM/OpenCore-Catalina/OpenCore-nopicker.qcow2}" \
@@ -208,6 +208,10 @@ CMD echo "${BOILERPLATE}" \
--height "${HEIGHT:-1080}" \
--output-bootdisk "${BOOTDISK:=/home/arch/OSX-KVM/OpenCore-Catalina/OpenCore.qcow2}" \
|| exit 1 ; } \
+ ; { [[ "${DISPLAY}" = ':99' ]] || [[ "${HEADLESS}" == true ]] ; } && { \
+ nohup Xvfb :99 -screen 0 1920x1080x16 \
+ & until [[ "$(xrandr --query 2>/dev/null)" ]]; do sleep 1 ; done \
+ ; } \
; stat "${IMAGE_PATH}" \
; echo "Large image is being copied between layers, please wait a minute..." \
; ./enable-ssh.sh \
@@ -217,7 +221,7 @@ CMD echo "${BOILERPLATE}" \
; } \
; /bin/bash -c ./Launch.sh \
& echo "Booting Docker-OSX in the background. Please wait..." \
- ; until [[ "$(sshpass -p${MAC_PASSWORD:=alpine} ssh-copy-id -f -i ~/.ssh/id_docker_osx.pub -p 10022 ${USERNAME:=user}@127.0.0.1)" ]]; do \
+ ; until [[ "$(sshpass -p${PASSWORD:=alpine} ssh-copy-id -f -i ~/.ssh/id_docker_osx.pub -p 10022 ${USERNAME:=user}@127.0.0.1)" ]]; do \
echo "Disk is being copied between layers. Repeating until able to copy SSH key into OSX..." \
; sleep 1 \
; done \
diff --git a/README.md b/README.md
index 2557eaf..6c4f35c 100644
--- a/README.md
+++ b/README.md
@@ -98,6 +98,8 @@ docker run -it \
Enable SSH in network sharing inside the guest first. Change `-e "USERNAME=user"` and `-e "USERNAME=password"` to your credentials. The container will add itself to `~/.ssh/authorized_keys`
+Since you can't see the screen, use the PLIST with nopicker, for example:
+
```bash
wget https://images2.sick.codes/mac_hdd_ng_auto.img
@@ -109,6 +111,8 @@ docker run -it \
-e "DISPLAY=${DISPLAY:-:0.0}" \
-e "USERNAME=user" \
-e "DISPLAY=alpine" \
+ -e GENERATE_UNIQUE=true \
+ -e MASTER_PLIST_URL=https://raw.githubusercontent.com/sickcodes/Docker-OSX/master/custom/config-nopicker-custom.plist \
sickcodes/docker-osx:naked-auto
```
@@ -156,6 +160,8 @@ Same as above but with `-e USERNAME` & `-e PASSWORD` and `-e OSX_COMMANDS="put y
[![https://img.shields.io/docker/image-size/sickcodes/docker-osx/naked-auto?label=sickcodes%2Fdocker-osx%3Anaked-auto](https://img.shields.io/docker/image-size/sickcodes/docker-osx/naked-auto?label=sickcodes%2Fdocker-osx%3Anaked-auto)](https://hub.docker.com/r/sickcodes/docker-osx/tags?page=1&ordering=last_updated)
## Capabilities
+- iPhone over USB
+- Folder sharing
- SSH enabled (`localhost:50922`)
- VNC enabled (`localhost:8888`) if using ./vnc version
- [serial number generator!](https://github.com/sickcodes/osx-serial-generator)
@@ -343,51 +349,6 @@ Big thank you to our contributors who have worked out almost every conceivable i
[https://github.com/sickcodes/Docker-OSX/blob/master/CREDITS.md](https://github.com/sickcodes/Docker-OSX/blob/master/CREDITS.md)
-### The big-sur image starts slowly after installation. Is this expected?
-
-Automatic updates are still on in the container's settings. You may wish to turn them off. [We have future plans for development around this.](https://github.com/sickcodes/Docker-OSX/issues/227)
-
-### What is `${DISPLAY:-:0.0}`?
-
-`$DISPLAY` is the shell variable that refers to your X11 display server.
-
-`${DISPLAY}` is the same, but allows you to join variables like this:
-
-- e.g. `${DISPLAY}_${DISPLAY}` would print `:0.0_:0.0`
-- e.g. `$DISPLAY_$DISPLAY` would print `:0.0`
-
-...because `$DISPLAY_` is not `$DISPLAY`
-
-`${variable:-fallback}` allows you to set a "fallback" variable to be substituted if `$variable` is not set.
-
-You can also use `${variable:=fallback}` to set that variable (in your current terminal).
-
-In Docker-OSX, we assume, `:0.0` is your default `$DISPLAY` variable.
-
-You can see what yours is
-
-```bash
-echo $DISPLAY
-```
-
-That way, `${DISPLAY:-:0.0}` will use whatever variable your X11 server has set for you, else `:0.0`
-
-### What is `-v /tmp/.X11-unix:/tmp/.X11-unix`?
-
-`-v` is a Docker command-line option that lets you pass a volume to the container.
-
-The directory that we are letting the Docker container use is a X server display socket.
-
-`/tmp/.X11-unix`
-
-If we let the Docker container use the same display socket as our own environment, then any applications you run inside the Docker container will show up on your screen too! [https://www.x.org/archive/X11R6.8.0/doc/RELNOTES5.html](https://www.x.org/archive/X11R6.8.0/doc/RELNOTES5.html)
-
-### ALSA errors on startup or container creation
-
-You may when initialising or booting into a container see errors from the `(qemu)` console of the following form:
-`ALSA lib blahblahblah: (function name) returned error: no such file or directory`. These are more or less expected. As long as you are able to boot into the container and everything is working, no reason to worry about these.
-
-See also: [here](https://github.com/sickcodes/Docker-OSX/issues/174).
### Start the same container later (persistent disk)
@@ -429,7 +390,7 @@ docker ps -a
docker start -ai -i <Replace this with your ID>
```
-### LibGTK errors
+### LibGTK errors "connection refused"
You may see one or more libgtk-related errors if you do not have everything set up for hardware virtualisation yet. If you have not yet done so, check out the [initial setup](#initial-setup) section and the [routine checks](#routine-checks) section as you may have missed a setup step or may not have all the needed Docker dependencies ready to go.
@@ -585,6 +546,48 @@ nano /etc/sysctl.conf || vi /etc/sysctl.conf || vim /etc/sysctl.conf
# now reboot
```
+## Share folder with Docker-OSX QEMU macOS
+
+Sharing a folder with guest is quite simple.
+
+Your folder, will go to /mnt/hostshare inside the Arch container which is then passed over QEMU.
+
+Then mount using `sudo -S mount_9p hostshare` from inside the mac.
+
+For example,
+
+```bash
+FOLDER=~/somefolder
+```
+
+```bash
+ -v "${FOLDER}:/mnt/hostshare" \
+ -e EXTRA="-virtfs local,path=/mnt/hostshare,mount_tag=hostshare,security_model=passthrough,id=hostshare" \
+```
+
+Full example:
+
+```bash
+# stat mac_hdd_ng.img
+SHARE=~/somefolder
+
+docker run -it \
+ --device /dev/kvm \
+ -p 50922:10022 \
+ -v /tmp/.X11-unix:/tmp/.X11-unix \
+ -e "DISPLAY=${DISPLAY:-:0.0}" \
+ -v "${PWD}/mac_hdd_ng.img:/home/arch/OSX-KVM/mac_hdd_ng.img" \
+ -v "${SHARE}:/mnt/hostshare" \
+ -e EXTRA="-virtfs local,path=/mnt/hostshare,mount_tag=hostshare,security_model=passthrough,id=hostshare" \
+ sickcodes/docker-osx:latest
+
+# !!! Open Terminal inside macOS and run the following command to mount the virtual file system
+# sudo -S mount_9p hostshare
+
+```
+
+
+
### Fedora: enable internet connectivity with a bridged network
Fedora's default firewall settings may prevent Docker's network interface from reaching the internet. In order to reoslve this, you will need to whitelist the interface in your firewall:
@@ -1403,3 +1406,52 @@ chmod +x ./Launch-nopicker.sh
sed -i -e s/OpenCore\.qcow2/OpenCore\-nopicker\.qcow2/ ./Launch-nopicker.sh
"
```
+
+
+
+### The big-sur image starts slowly after installation. Is this expected?
+
+Automatic updates are still on in the container's settings. You may wish to turn them off. [We have future plans for development around this.](https://github.com/sickcodes/Docker-OSX/issues/227)
+
+### What is `${DISPLAY:-:0.0}`?
+
+`$DISPLAY` is the shell variable that refers to your X11 display server.
+
+`${DISPLAY}` is the same, but allows you to join variables like this:
+
+- e.g. `${DISPLAY}_${DISPLAY}` would print `:0.0_:0.0`
+- e.g. `$DISPLAY_$DISPLAY` would print `:0.0`
+
+...because `$DISPLAY_` is not `$DISPLAY`
+
+`${variable:-fallback}` allows you to set a "fallback" variable to be substituted if `$variable` is not set.
+
+You can also use `${variable:=fallback}` to set that variable (in your current terminal).
+
+In Docker-OSX, we assume, `:0.0` is your default `$DISPLAY` variable.
+
+You can see what yours is
+
+```bash
+echo $DISPLAY
+```
+
+That way, `${DISPLAY:-:0.0}` will use whatever variable your X11 server has set for you, else `:0.0`
+
+### What is `-v /tmp/.X11-unix:/tmp/.X11-unix`?
+
+`-v` is a Docker command-line option that lets you pass a volume to the container.
+
+The directory that we are letting the Docker container use is a X server display socket.
+
+`/tmp/.X11-unix`
+
+If we let the Docker container use the same display socket as our own environment, then any applications you run inside the Docker container will show up on your screen too! [https://www.x.org/archive/X11R6.8.0/doc/RELNOTES5.html](https://www.x.org/archive/X11R6.8.0/doc/RELNOTES5.html)
+
+### ALSA errors on startup or container creation
+
+You may when initialising or booting into a container see errors from the `(qemu)` console of the following form:
+`ALSA lib blahblahblah: (function name) returned error: no such file or directory`. These are more or less expected. As long as you are able to boot into the container and everything is working, no reason to worry about these.
+
+See also: [here](https://github.com/sickcodes/Docker-OSX/issues/174).
+