diff --git a/Dockerfile b/Dockerfile index 758f39a..76dd8c9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,7 +3,8 @@ FROM ubuntu:jammy # Settings ARG OVERLAY_VERSION="v2.2.0.3" ARG RELEASE_TYPE="develop" -ENV DOCKER_TLS_CERTDIR="" +ENV DOCKER_TLS_CERTDIR="" \ + NVIDIA_DRIVER_CAPABILITIES="compute,graphics,video,utility" # Container setup RUN \ @@ -28,16 +29,17 @@ RUN \ containerd.io \ docker-ce \ docker-ce-cli \ - drm-info \ e2fsprogs \ fuse-overlayfs \ g++ \ gcc \ + iproute2 \ iptables \ jq \ lsof \ make \ nodejs \ + nvidia-container-toolkit \ nvidia-docker2 \ openssl \ pigz \ @@ -95,7 +97,7 @@ RUN \ ALVERSION=$(cat /kasm_release/conf/database/seed_data/default_properties.yaml |awk '/alembic_version/ {print $2}') && \ curl -o \ /tmp/images.tar.gz -L \ - "https://kasm-ci.s3.amazonaws.com/1.15.0-images-combined.tar.gz" && \ + "https://kasm-ci.s3.amazonaws.com/1.16.0-images-combined.tar.gz" && \ tar xf \ /tmp/images.tar.gz -C \ / && \ diff --git a/root/etc/cont-init.d/02-setup b/root/etc/cont-init.d/02-setup index 4c8ed07..451bf5e 100644 --- a/root/etc/cont-init.d/02-setup +++ b/root/etc/cont-init.d/02-setup @@ -15,3 +15,11 @@ if [ ! -f "/opt/kasm/certs/kasm_wizard.crt" ]; then mkdir -p /opt/kasm/certs openssl req -x509 -nodes -days 1825 -newkey rsa:2048 -keyout /opt/kasm/certs/kasm_wizard.key -out /opt/kasm/certs/kasm_wizard.crt -subj "/C=US/ST=VA/L=None/O=None/OU=DoFu/CN=$(hostname)/emailAddress=none@none.none" fi + +# Create plugin directory +if [ ! -L "/var/lib/docker-plugins" ]; then + mkdir -p /opt/docker-plugins + ln -s /opt/docker-plugins /var/lib/docker-plugins + mkdir -p /var/lib/docker-plugins/rclone/config + mkdir -p /var/lib/docker-plugins/rclone/cache +fi diff --git a/root/etc/docker/daemon.json b/root/etc/docker/daemon.json new file mode 100644 index 0000000..c561d62 --- /dev/null +++ b/root/etc/docker/daemon.json @@ -0,0 +1,8 @@ +{ + "runtimes": { + "nvidia": { + "args": [], + "path": "nvidia-container-runtime" + } + } +} diff --git a/root/gpuinfo.sh b/root/gpuinfo.sh index 984df4e..234731e 100755 --- a/root/gpuinfo.sh +++ b/root/gpuinfo.sh @@ -1,2 +1,28 @@ #! /bin/bash -drm_info -j 2>/dev/null| jq -c 'with_entries(.value |= .driver.desc)' + +# Get list of drm devices +IFS=$'\n' +CARDS=$(ls -la /sys/class/drm/renderD*/device/driver 2>/dev/null | awk '{print $11}' | awk -F/ '{print $NF}') +if [ -z "$CARDS" ]; then + echo '{}' + exit 0 +fi +for CARD in ${CARDS}; do + LAST_CARD=${CARD} +done + +# Add them to the json string +JSON='{' +COUNTER=0 +for CARD in $CARDS; do + JSON="${JSON}\"/dev/dri/card$COUNTER\":\"${CARD^^}\"" + if [ ${CARD} == ${LAST_CARD} ]; then + JSON="${JSON}}" + else + JSON="${JSON}," + fi + COUNTER=$(( COUNTER + 1 )) +done + +# Print json string +echo $JSON