aboutsummaryrefslogtreecommitdiff
path: root/helm/Dockerfile
diff options
context:
space:
mode:
authorpeter <[email protected]>2021-01-21 19:48:05 -0800
committerpeter <[email protected]>2021-01-21 19:48:05 -0800
commit5561b08e6ab58209cb1a5febd57c355e01530f67 (patch)
treecd8f814d2db614e06ee19f4e81998668755e9fc4 /helm/Dockerfile
parentupdate to reflect more latest changes (diff)
downloaddocker-osx-5561b08e6ab58209cb1a5febd57c355e01530f67.tar.xz
docker-osx-5561b08e6ab58209cb1a5febd57c355e01530f67.zip
add gpu passthrough support as well as dynamic OpenCore regeneration
Diffstat (limited to 'helm/Dockerfile')
-rw-r--r--helm/Dockerfile72
1 files changed, 72 insertions, 0 deletions
diff --git a/helm/Dockerfile b/helm/Dockerfile
new file mode 100644
index 0000000..55c0e52
--- /dev/null
+++ b/helm/Dockerfile
@@ -0,0 +1,72 @@
+#!/usr/bin/docker
+#
+# This Dockerfile is to be consumed with the docker_osx helm templates. It consumes the
+# Ubuntu image so that OpenCore.qcow2 can be re-generated (which happens in Kube itself),
+# not to mention that OSX-KVM was written for Ubuntu. This was not designed to be run in Docker
+# by itself.. very well anyway.
+#
+
+FROM ubuntu:21.04
+
+SHELL ["/bin/bash", "-c"]
+
+# this has to match .Values.image.userName in helm template
+ARG USER=ubuntu
+# this installs the kvm linux kernel in the docker container so that OpenCore.qcow2 boot images
+# can be built.
+ARG DOCKER_KERNEL_VERSION=linux-image-kvm
+
+ENV TZ=America/Los_Angeles
+ARG DEBIAN_FRONTEND=noninteractive
+
+RUN DEBCONF_FRONTEND=noninteractive apt update \
+ && apt install \
+ bridge-utils \
+ fish \
+ git wget \
+ libguestfs-tools \
+ libvirt-daemon-system \
+ $DOCKER_KERNEL_VERSION \
+ p7zip-full \
+ qemu \
+ sudo \
+ uml-utilities \
+ virt-manager \
+ -y
+
+# Configure SSH
+RUN apt install git vim nano alsa-utils openssh-server -y
+
+# Create user and grant sudo privledges
+RUN adduser --disabled-password \
+ --gecos '' $USER \
+ && echo "$USER ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/$USER \
+ && chmod 0440 /etc/sudoers.d/$USER
+
+# Configure VNC for user
+RUN apt install \
+ dbus-x11 \
+ openbox \
+ tigervnc-common \
+ tigervnc-standalone-server \
+ xfce4 \
+ xfce4-goodies \
+ x11-xserver-utils \
+ xdotool \
+ xorg \
+ xterm \
+ ufw \
+ -y
+
+USER $USER
+
+# only create ~/.vnc as helm will build out ~/.vnc/config
+RUN mkdir -p ${HOME}/.vnc
+
+RUN git clone --depth 1 https://github.com/kholia/OSX-KVM.git /home/$USER/OSX-KVM
+
+VOLUME ["/tmp/.X11-unix"]
+
+WORKDIR /home/$USER/OSX-KVM
+# helm will build out ./Launch_custom.sh
+CMD envsubst < ./Launch_custom.sh | bash