Major serial number runtime generation and override changes.

pull/155/head
sickcodes 4 years ago
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.|

@ -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

@ -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
This starts the special auto image @sickcodes prepared earlier.
You will need around 50GB of space: half for the base image + half for your runtime image. This image has already been installed with the following settings:
If you run out of space, you can nuke your Docker images/history/cache by simply deleting `/var/lib/docker` - 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…
Cancel
Save