Docker-OSX/helm/Dockerfile

73 lines
1.9 KiB
Docker

#!/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