mirror of
https://github.com/sickcodes/Docker-OSX.git
synced 2024-11-26 04:01:29 +08:00
Major serial number runtime generation and override changes.
This commit is contained in:
parent
9f104526e0
commit
23ab20c2fa
@ -1,5 +1,6 @@
|
|||||||
|Version|Date|Notes|
|
|Version|Date|Notes|
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
|
|3.2|2021-02-25|Add a script to generate unique machine serial numbers. Add a script to generate a bootdisk from given serial numbers. Add Linux for libguestfs which allows the docker container to make QEMU bootdisks with specific serial numbers.|
|
||||||
| |2021-02-21|Add NOPICKER environment variable to ALL images.|
|
| |2021-02-21|Add NOPICKER environment variable to ALL images.|
|
||||||
|3.1|2021-02-21|Remove testing repos. Switch to base-devel. We shouldn't be using testing repos in a Dockerfile for light increase in stability. Add the mandatory glibc patch to every pacman until someone upstream fixes it.|
|
|3.1|2021-02-21|Remove testing repos. Switch to base-devel. We shouldn't be using testing repos in a Dockerfile for light increase in stability. Add the mandatory glibc patch to every pacman until someone upstream fixes it.|
|
||||||
| |2021-02-07|Add NOPICKER environment variable to :naked image for effortless boot toggling.|
|
| |2021-02-07|Add NOPICKER environment variable to :naked image for effortless boot toggling.|
|
||||||
|
57
Dockerfile
57
Dockerfile
@ -8,7 +8,7 @@
|
|||||||
# Repo: https://github.com/sickcodes/Docker-OSX/
|
# Repo: https://github.com/sickcodes/Docker-OSX/
|
||||||
# Title: Mac on Docker (Docker-OSX)
|
# Title: Mac on Docker (Docker-OSX)
|
||||||
# Author: Sick.Codes https://sick.codes/
|
# Author: Sick.Codes https://sick.codes/
|
||||||
# Version: 3.1
|
# Version: 3.2
|
||||||
# License: GPLv3+
|
# License: GPLv3+
|
||||||
#
|
#
|
||||||
# All credits for OSX-KVM and the rest at @Kholia's repo: https://github.com/kholia/osx-kvm
|
# All credits for OSX-KVM and the rest at @Kholia's repo: https://github.com/kholia/osx-kvm
|
||||||
@ -216,6 +216,8 @@ RUN touch Launch.sh \
|
|||||||
&& tee -a Launch.sh <<< '${EXTRA:-}'
|
&& tee -a Launch.sh <<< '${EXTRA:-}'
|
||||||
|
|
||||||
# docker exec containerid mv ./Launch-nopicker.sh ./Launch.sh
|
# docker exec containerid mv ./Launch-nopicker.sh ./Launch.sh
|
||||||
|
# This is now a legacy command.
|
||||||
|
# You can use -e BOOTDISK=/bootdisk with -v ./bootdisk.img:/bootdisk
|
||||||
RUN grep -v InstallMedia ./Launch.sh > ./Launch-nopicker.sh \
|
RUN grep -v InstallMedia ./Launch.sh > ./Launch-nopicker.sh \
|
||||||
&& chmod +x ./Launch-nopicker.sh \
|
&& chmod +x ./Launch-nopicker.sh \
|
||||||
&& sed -i -e s/OpenCore\.qcow2/OpenCore\-nopicker\.qcow2/ ./Launch-nopicker.sh
|
&& sed -i -e s/OpenCore\.qcow2/OpenCore\-nopicker\.qcow2/ ./Launch-nopicker.sh
|
||||||
@ -233,13 +235,62 @@ ENV NETWORKING=e1000-82545em
|
|||||||
|
|
||||||
ENV NOPICKER=false
|
ENV NOPICKER=false
|
||||||
|
|
||||||
|
# Boolean for generating a bootdisk with new serials.
|
||||||
|
ENV UNIQUE=false
|
||||||
|
|
||||||
VOLUME ["/tmp/.X11-unix"]
|
VOLUME ["/tmp/.X11-unix"]
|
||||||
|
|
||||||
|
# check if /image is a disk image or a directory. This allows you to optionally use -v disk.img:/image
|
||||||
|
# NOPICKER is used to skip the disk selection screen
|
||||||
|
# GENERATE_UNIQUE is used to generate serial numbers on boot.
|
||||||
|
# /env is a file that you can generate and save using -v source.sh:/env
|
||||||
|
# the env file is a file that you can carry to the next container which will supply the serials numbers.
|
||||||
|
# GENERATE_SPECIFIC is used to either accept the env serial numbers OR you can supply using:
|
||||||
|
# -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" \
|
||||||
|
|
||||||
|
# the output will be /bootdisk.
|
||||||
|
# /bootdisk is a useful persistent place to store the 15Mb serial number bootdisk.
|
||||||
|
|
||||||
|
# if you don't set any of the above:
|
||||||
|
# the default serial numbers are already contained in ./OpenCore-Catalina/OpenCore.qcow2
|
||||||
|
# And the default serial numbers
|
||||||
|
|
||||||
CMD case "$(file --brief /image)" in \
|
CMD case "$(file --brief /image)" in \
|
||||||
QEMU*) export IMAGE_PATH=/image && sudo chown "$(id -u)":"$(id -g)" "${IMAGE_PATH}" 2>/dev/null || true;; \
|
QEMU\ QCOW2\ Image* ) export IMAGE_PATH=/image \
|
||||||
directory*) export IMAGE_PATH=/home/arch/OSX-KVM/mac_hdd_ng.img;; \
|
; 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 \
|
esac \
|
||||||
; [[ "${NOPICKER}" == true ]] && mv ./Launch-nopicker.sh ./Launch.sh \
|
; [[ "${NOPICKER}" == true ]] && mv ./Launch-nopicker.sh ./Launch.sh \
|
||||||
|
; [[ "${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
|
; ./enable-ssh.sh && envsubst < ./Launch.sh | bash
|
||||||
|
|
||||||
# virt-manager mode: eta son
|
# virt-manager mode: eta son
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
#
|
#
|
||||||
# Title: Mac on Docker (Docker-OSX) [AUTOINSTALL]
|
# Title: Mac on Docker (Docker-OSX) [AUTOINSTALL]
|
||||||
# Author: Sick.Codes https://twitter.com/sickcodes
|
# Author: Sick.Codes https://twitter.com/sickcodes
|
||||||
# Version: 3.1
|
# Version: 3.2
|
||||||
# License: GPLv3+
|
# License: GPLv3+
|
||||||
# Repository: https://github.com/sickcodes/Docker-OSX
|
# Repository: https://github.com/sickcodes/Docker-OSX
|
||||||
#
|
#
|
||||||
@ -140,6 +140,30 @@ ENV BOILERPLATE="By using this Dockerfile, you hereby agree that you are a secur
|
|||||||
CMD echo "${BOILERPLATE}" \
|
CMD echo "${BOILERPLATE}" \
|
||||||
&& [[ "${TERMS_OF_USE}" = i_agree ]] || exit 1 \
|
&& [[ "${TERMS_OF_USE}" = i_agree ]] || exit 1 \
|
||||||
; [[ "${NOPICKER}" == true ]] && mv ./Launch-nopicker.sh ./Launch.sh \
|
; [[ "${NOPICKER}" == true ]] && mv ./Launch-nopicker.sh ./Launch.sh \
|
||||||
|
; [[ "${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 \
|
||||||
; [[ "${DISPLAY}" = ':99' ]] && { \
|
; [[ "${DISPLAY}" = ':99' ]] && { \
|
||||||
nohup Xvfb :99 -screen 0 1920x1080x16 \
|
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 0.1 ; done \
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
#
|
#
|
||||||
# Title: Mac on Docker (Docker-OSX) [AUTOINSTALL]
|
# Title: Mac on Docker (Docker-OSX) [AUTOINSTALL]
|
||||||
# Author: Sick.Codes https://twitter.com/sickcodes
|
# Author: Sick.Codes https://twitter.com/sickcodes
|
||||||
# Version: 3.1
|
# Version: 3.2
|
||||||
# License: GPLv3+
|
# License: GPLv3+
|
||||||
# Repository: https://github.com/sickcodes/Docker-OSX
|
# 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
|
# 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' <https://sick.codes>
|
MAINTAINER 'https://twitter.com/sickcodes' <https://sick.codes>
|
||||||
|
|
||||||
@ -112,6 +112,29 @@ CMD [[ "${DISPLAY}" = ':99' ]] && { \
|
|||||||
& until [[ "$(xrandr --query 2>/dev/null)" ]]; do sleep 1 ; done \
|
& until [[ "$(xrandr --query 2>/dev/null)" ]]; do sleep 1 ; done \
|
||||||
; } \
|
; } \
|
||||||
; sudo chown "$(id -u)":"$(id -g)" "${IMAGE_PATH}" 2>/dev/null || true \
|
; sudo chown "$(id -u)":"$(id -g)" "${IMAGE_PATH}" 2>/dev/null || true \
|
||||||
; ./enable-ssh.sh \
|
|
||||||
; [[ "${NOPICKER}" == true ]] && mv ./Launch-nopicker.sh ./Launch.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
|
||||||
|
97
README.md
97
README.md
@ -3,10 +3,12 @@
|
|||||||
|
|
||||||
![Running mac osx in a docker container](/running-mac-inside-docker-qemu.png?raw=true "OSX KVM DOCKER")
|
![Running mac osx in a docker container](/running-mac-inside-docker-qemu.png?raw=true "OSX KVM DOCKER")
|
||||||
|
|
||||||
Run Mac in a Docker container! Run near native OSX-KVM in Docker! X11 Forwarding!
|
Run Mac in a Docker container! Run near native OSX-KVM in Docker! X11 Forwarding! iMessage security research!
|
||||||
|
|
||||||
Author: Sick.Codes https://sick.codes/ & https://twitter.com/sickcodes
|
Author: Sick.Codes https://sick.codes/ & https://twitter.com/sickcodes
|
||||||
|
|
||||||
|
Documentation: everything is on this page!
|
||||||
|
|
||||||
### PR & Contributor Credits
|
### PR & Contributor Credits
|
||||||
|
|
||||||
https://github.com/sickcodes/Docker-OSX/blob/master/CREDITS.md
|
https://github.com/sickcodes/Docker-OSX/blob/master/CREDITS.md
|
||||||
@ -21,7 +23,9 @@ Docker Hub: https://hub.docker.com/r/sickcodes/docker-osx
|
|||||||
|
|
||||||
## Professional Support Available!
|
## Professional Support Available!
|
||||||
|
|
||||||
Enquire at https://sick.codes/contact
|
Small questions & issues: open an issue!
|
||||||
|
|
||||||
|
For big projects, DM on Twitter [@sickcodes on Twitter](https://twitter.com/sickcodes) or write to us at https://sick.codes/contact.
|
||||||
|
|
||||||
- Enterprise support, Business support, or casual support.
|
- Enterprise support, Business support, or casual support.
|
||||||
- Custom images, custom scripts, consulting (per hour available!)
|
- Custom images, custom scripts, consulting (per hour available!)
|
||||||
@ -31,11 +35,13 @@ Enquire at https://sick.codes/contact
|
|||||||
|
|
||||||
Kubernetes Helm Chart & Documentation [available at ./helm](https://github.com/sickcodes/Docker-OSX/tree/master/helm)
|
Kubernetes Helm Chart & Documentation [available at ./helm](https://github.com/sickcodes/Docker-OSX/tree/master/helm)
|
||||||
|
|
||||||
|
Thank you to @cephasara for this major contribution.
|
||||||
|
|
||||||
[![Artifact HUB](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/docker-osx)](https://artifacthub.io/packages/search?repo=docker-osx)
|
[![Artifact HUB](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/docker-osx)](https://artifacthub.io/packages/search?repo=docker-osx)
|
||||||
|
|
||||||
#### Follow [@sickcodes on Twitter](https://twitter.com/sickcodes) for updates or feature requests!
|
#### Follow [@sickcodes on Twitter](https://twitter.com/sickcodes) for updates or feature requests!
|
||||||
|
|
||||||
# Quick Start Docker-OSX
|
# Basic Quick Start Docker-OSX
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
|
||||||
@ -52,18 +58,28 @@ docker run -it \
|
|||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
# Quick Start 17.5GB Pre-Made Image
|
# Quick Start Large Pre-Made Image
|
||||||
|
|
||||||
|
Current large image size: 17.5GB
|
||||||
|
|
||||||
You will need around 50GB of space: half for the base image + half for your runtime image.
|
This starts the special auto image @sickcodes prepared earlier.
|
||||||
|
|
||||||
If you run out of space, you can nuke your Docker images/history/cache by simply deleting `/var/lib/docker`
|
This image has already been installed with the following settings:
|
||||||
|
|
||||||
|
- SSH enabled
|
||||||
|
- username is user
|
||||||
|
- password is alpine
|
||||||
|
- Autoupdates off
|
||||||
|
|
||||||
|
You will need around 50GB of space to run this image: half for the base image + half for your runtime image.
|
||||||
|
|
||||||
|
If you run out of space, you can delete all your Docker images/history/cache by simply deleting `/var/lib/docker`
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
|
||||||
docker pull sickcodes/docker-osx:auto
|
docker pull sickcodes/docker-osx:auto
|
||||||
|
|
||||||
# boot straight to OSX shell with no display (19GB)
|
# boot directly into a real OSX shell with no display (Xvfb)
|
||||||
docker run -it \
|
docker run -it \
|
||||||
--device /dev/kvm \
|
--device /dev/kvm \
|
||||||
-p 50922:10022 \
|
-p 50922:10022 \
|
||||||
@ -76,7 +92,7 @@ docker run -it \
|
|||||||
|
|
||||||
docker pull sickcodes/docker-osx:auto
|
docker pull sickcodes/docker-osx:auto
|
||||||
|
|
||||||
# boot to OSX shell + display (19GB)
|
# boot directly into a real OSX shell with a visual display
|
||||||
docker run -it \
|
docker run -it \
|
||||||
--device /dev/kvm \
|
--device /dev/kvm \
|
||||||
-p 50922:10022 \
|
-p 50922:10022 \
|
||||||
@ -90,7 +106,7 @@ docker run -it \
|
|||||||
|
|
||||||
docker pull sickcodes/docker-osx:auto
|
docker pull sickcodes/docker-osx:auto
|
||||||
|
|
||||||
# boot to OSX shell + display (19GB) + commands to run inside OSX
|
# boot to OSX shell + display + specify commands to run inside OSX!
|
||||||
docker run -it \
|
docker run -it \
|
||||||
--device /dev/kvm \
|
--device /dev/kvm \
|
||||||
-p 50922:10022 \
|
-p 50922:10022 \
|
||||||
@ -104,6 +120,8 @@ docker run -it \
|
|||||||
```
|
```
|
||||||
### Restart an auto container
|
### Restart an auto container
|
||||||
|
|
||||||
|
Containers that use `sickcodes/docker-osx:auto` can be stopped at started.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# find last container
|
# find last container
|
||||||
docker ps -a
|
docker ps -a
|
||||||
@ -113,13 +131,14 @@ docker start -i containerid
|
|||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
# Quick Start Own Image
|
# Quick Start Own Image (naked container image)
|
||||||
|
|
||||||
|
This is my favourite container. You can supply an existing disk image as a docker command line argument.
|
||||||
|
|
||||||
Supply your own local 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.
|
- 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.
|
- By default, this image has a variable called `NOPICKER` which is `"true"`. This skips the disk selection menu. 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 or disk utility.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker pull sickcodes/docker-osx:naked
|
docker pull sickcodes/docker-osx:naked
|
||||||
@ -153,24 +172,25 @@ docker run -it \
|
|||||||
sickcodes/docker-osx:naked
|
sickcodes/docker-osx:naked
|
||||||
```
|
```
|
||||||
|
|
||||||
# Features In Docker-OSX v3.1
|
# Features In Docker-OSX v3.2
|
||||||
- Full auto mode: boot straight to OSX shell.
|
- Serial number generators. [See below or ./custom](https://github.com/sickcodes/Docker-OSX/tree/master/custom)
|
||||||
- sickcodes/docker-osx:latest - original base recovery image (safe)
|
- Full auto mode: boot straight to OSX shell and even run commands as runtime arguments!
|
||||||
- sickcodes/docker-osx:naked - supply your own .img file (safe)
|
- `sickcodes/docker-osx:latest` - original base recovery image (safe)
|
||||||
- sickcodes/docker-osx:auto - 17.5GB image boot to OSX shell (must trust @sickcodes)
|
- `sickcodes/docker-osx:naked` - supply your own .img file (safe)
|
||||||
- Supply your own image using -v $PWD/disk.img:/image
|
- `sickcodes/docker-osx:auto` - Large docker image that boots to OSX shell (must trust @sickcodes)
|
||||||
|
- Supply your own image using `-v "${PWD}/disk.img:/image"`
|
||||||
- Kubernetes Helm Chart. [See ./helm](https://github.com/sickcodes/Docker-OSX/tree/master/helm)
|
- Kubernetes Helm Chart. [See ./helm](https://github.com/sickcodes/Docker-OSX/tree/master/helm)
|
||||||
- OSX-KVM
|
- [OSX-KVM](https://github.com/kholia/OSX-KVM) inside a Docker container!
|
||||||
- X11 Forwarding
|
- X11 Forwarding
|
||||||
- SSH on localhost:50922
|
- SSH on `localhost:50922`
|
||||||
- QEMU
|
- QEMU + KVM!
|
||||||
- VNC on localhost:8888 [vnc version is inside a separate directory](https://github.com/sickcodes/Docker-OSX/blob/master/vnc-version/Dockerfile)
|
- VNC version on `localhost:8888` [vnc version is inside a separate directory, there are security risks involved with using VNC, see insid the Dockerfile](https://github.com/sickcodes/Docker-OSX/blob/master/vnc-version/Dockerfile)
|
||||||
- Create an ARMY using `docker commit`
|
- Create an ARMY of the same exact container using `docker commit`
|
||||||
- XFVB HEADLESS (use vnc)
|
- Xfvb headless mode
|
||||||
|
|
||||||
### All Pull Requests Welcome!
|
### All Pull Requests Welcome!
|
||||||
|
|
||||||
Docker-OSX is a GPLv3+ Dockerfile and we need contributors just like you :).
|
Docker-OSX is a GPLv3+ Dockerfile and we need contributors just like you :)
|
||||||
|
|
||||||
Upstream: https://github.com/kholia/OSX-KVM && the great guy [@kholia](https://twitter.com/kholia)
|
Upstream: https://github.com/kholia/OSX-KVM && the great guy [@kholia](https://twitter.com/kholia)
|
||||||
|
|
||||||
@ -178,6 +198,10 @@ Upstream Credits (OSX-KVM project) among many others: https://github.com/kholia/
|
|||||||
|
|
||||||
# Download The Image for sickcodes/docker-osx:naked
|
# Download The Image for sickcodes/docker-osx:naked
|
||||||
|
|
||||||
|
This is the current automated image. Username is `user`, passsword is `alpine`, SSH is on, and auto-updates are off.
|
||||||
|
|
||||||
|
If the download is slow, just get the image from `docker pull sickcodes/docker-osx:auto` and find it in `/var/lib/docker`.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
wget https://images2.sick.codes/mac_hdd_ng_auto.img
|
wget https://images2.sick.codes/mac_hdd_ng_auto.img
|
||||||
|
|
||||||
@ -191,14 +215,6 @@ docker run -it \
|
|||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
# Internet Speeds
|
|
||||||
|
|
||||||
### Slow internet but iMessage & iCloud compatability
|
|
||||||
`-e NETWORKING=e1000-82545em`
|
|
||||||
|
|
||||||
### FAST internet but not compatable with iMessage & iCloud
|
|
||||||
`-e NETWORKING=vmxnet3`
|
|
||||||
|
|
||||||
### Other cool Docker-QEMU based projects:
|
### Other cool Docker-QEMU based projects:
|
||||||
|
|
||||||
[Run iOS in a Docker with Docker-eyeOS](https://github.com/sickcodes/Docker-eyeOS) - [https://github.com/sickcodes/Docker-eyeOS](https://github.com/sickcodes/Docker-eyeOS)
|
[Run iOS in a Docker with Docker-eyeOS](https://github.com/sickcodes/Docker-eyeOS) - [https://github.com/sickcodes/Docker-eyeOS](https://github.com/sickcodes/Docker-eyeOS)
|
||||||
@ -243,6 +259,8 @@ ssh fullname@localhost -p 50922
|
|||||||
|
|
||||||
# Autoboot into OSX after you've installed everything
|
# Autoboot into OSX after you've installed everything
|
||||||
|
|
||||||
|
You can use `-e NOPICKER=true` or for older machines:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# find you containerID
|
# find you containerID
|
||||||
docker ps
|
docker ps
|
||||||
@ -289,7 +307,9 @@ sudo modprobe kvm
|
|||||||
|
|
||||||
# Start the same container later (persistent disk)
|
# Start the same container later (persistent disk)
|
||||||
|
|
||||||
This is for when you want to run the SAME container again later.
|
1. You can now pull the `.img` file out of the container, which is stored in `/var/lib/docker`, and supply it as a runtime argument to the `:naked` Docker image. See above.
|
||||||
|
|
||||||
|
2. This is for when you want to run the SAME container again later.
|
||||||
|
|
||||||
If you don't run this you will have a new image every time.
|
If you don't run this you will have a new image every time.
|
||||||
|
|
||||||
@ -501,6 +521,15 @@ sudo mv somedir/mac_hdd_ng.img .
|
|||||||
|
|
||||||
[Use the sickcodes/docker-osx:naked image.](https://github.com/sickcodes/Docker-OSX/tree/custom-identity#quick-start-own-image)
|
[Use the sickcodes/docker-osx:naked image.](https://github.com/sickcodes/Docker-OSX/tree/custom-identity#quick-start-own-image)
|
||||||
|
|
||||||
|
# Internet Speeds
|
||||||
|
|
||||||
|
### Slow internet but iMessage & iCloud compatability
|
||||||
|
`-e NETWORKING=e1000-82545em`
|
||||||
|
|
||||||
|
### FAST internet but not compatable with iMessage & iCloud
|
||||||
|
`-e NETWORKING=vmxnet3`
|
||||||
|
|
||||||
|
|
||||||
# DESTROY: Wipe old images to free disk space
|
# DESTROY: Wipe old images to free disk space
|
||||||
|
|
||||||
The easiest way to clean out your entire Docker (ALL images, layers, and containers) is to `sudo rm -rf /var/lib/docker`
|
The easiest way to clean out your entire Docker (ALL images, layers, and containers) is to `sudo rm -rf /var/lib/docker`
|
||||||
@ -713,7 +742,7 @@ The directory that we are letting the Docker container use is a X server display
|
|||||||
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)
|
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)
|
||||||
|
|
||||||
|
|
||||||
## Todo:
|
## TODO:
|
||||||
```
|
```
|
||||||
- Security Documentation
|
- Security Documentation
|
||||||
- GPU Acceleration: Coming Soon
|
- GPU Acceleration: Coming Soon
|
||||||
|
@ -1,5 +1,9 @@
|
|||||||
# docker-osx
|
# docker-osx
|
||||||
|
|
||||||
|
Docker-OSX Helm Chart for Kubernetes.
|
||||||
|
|
||||||
|
Project page: https://github.com/sickcodes/docker-osx
|
||||||
|
|
||||||
Available now on Artifact HUB
|
Available now on Artifact HUB
|
||||||
[![Artifact HUB](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/docker-osx)](https://artifacthub.io/packages/search?repo=docker-osx)
|
[![Artifact HUB](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/docker-osx)](https://artifacthub.io/packages/search?repo=docker-osx)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user