mirror of
https://github.com/kasmtech/workspaces-core-images.git
synced 2025-06-26 06:51:45 +02:00
KASM-1973 Nvidia gpu acceleration
This commit is contained in:
commit
917f57c547
@ -6,6 +6,9 @@ stages:
|
|||||||
- build
|
- build
|
||||||
- readme
|
- readme
|
||||||
|
|
||||||
|
variables:
|
||||||
|
DOCKER_AUTH_CONFIG: ${_DOCKER_AUTH_CONFIG}
|
||||||
|
|
||||||
before_script:
|
before_script:
|
||||||
- docker login --username $DOCKER_HUB_USERNAME --password $DOCKER_HUB_PASSWORD
|
- docker login --username $DOCKER_HUB_USERNAME --password $DOCKER_HUB_PASSWORD
|
||||||
- export SANITIZED_BRANCH="$(echo $CI_COMMIT_REF_NAME | sed -r 's#^release/##' | sed 's/\//_/g')"
|
- export SANITIZED_BRANCH="$(echo $CI_COMMIT_REF_NAME | sed -r 's#^release/##' | sed 's/\//_/g')"
|
||||||
@ -14,17 +17,23 @@ before_script:
|
|||||||
# Jobs for the develop and release branches. They should push to the private and public repos
|
# Jobs for the develop and release branches. They should push to the private and public repos
|
||||||
build_ubuntu_bionic:
|
build_ubuntu_bionic:
|
||||||
stage: build
|
stage: build
|
||||||
|
image: ${ORG_NAME}/docker-buildx-private:develop
|
||||||
|
variables:
|
||||||
|
BUILD_PLATFORMS: "linux/amd64,linux/arm64"
|
||||||
script:
|
script:
|
||||||
- docker build -t ${ORG_NAME}/core-ubuntu-bionic-private:$SANITIZED_BRANCH -t ${ORG_NAME}/core-ubuntu-bionic-private:$SANITIZED_ROLLING_BRANCH -t ${ORG_NAME}/core-ubuntu-bionic:$SANITIZED_BRANCH -t ${ORG_NAME}/core-ubuntu-bionic:$SANITIZED_ROLLING_BRANCH --build-arg BASE_IMAGE="ubuntu:18.04" --build-arg BG_IMG=bg_bionic.png -f dockerfile-kasm-core .
|
# get qemu ready
|
||||||
- docker push ${ORG_NAME}/core-ubuntu-bionic-private:$SANITIZED_BRANCH
|
- docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
|
||||||
- docker push ${ORG_NAME}/core-ubuntu-bionic-private:$SANITIZED_ROLLING_BRANCH
|
# prep the buildx env
|
||||||
- docker push ${ORG_NAME}/core-ubuntu-bionic:$SANITIZED_BRANCH
|
- docker buildx create --use
|
||||||
- docker push ${ORG_NAME}/core-ubuntu-bionic:$SANITIZED_ROLLING_BRANCH
|
# build for multiple architectures
|
||||||
|
- docker buildx build --push --platform $BUILD_PLATFORMS -t ${ORG_NAME}/core-ubuntu-bionic-private:$SANITIZED_BRANCH -t ${ORG_NAME}/core-ubuntu-bionic-private:$SANITIZED_ROLLING_BRANCH -t ${ORG_NAME}/core-ubuntu-bionic:$SANITIZED_BRANCH -t ${ORG_NAME}/core-ubuntu-bionic:$SANITIZED_ROLLING_BRANCH --build-arg BASE_IMAGE="ubuntu:18.04" --build-arg BG_IMG=bg_bionic.png -f dockerfile-kasm-core .
|
||||||
only:
|
only:
|
||||||
- develop
|
- develop
|
||||||
- /^release\/.*$/
|
- /^release\/.*$/
|
||||||
except:
|
except:
|
||||||
- schedules
|
- schedules
|
||||||
|
tags:
|
||||||
|
- aws-autoscale
|
||||||
|
|
||||||
build_cuda_bionic:
|
build_cuda_bionic:
|
||||||
stage: build
|
stage: build
|
||||||
@ -40,6 +49,20 @@ build_cuda_bionic:
|
|||||||
except:
|
except:
|
||||||
- schedules
|
- schedules
|
||||||
|
|
||||||
|
build_nvidia_focal:
|
||||||
|
stage: build
|
||||||
|
script:
|
||||||
|
- docker build -t ${ORG_NAME}/core-nvidia-focal-private:$SANITIZED_BRANCH -t ${ORG_NAME}/core-nvidia-focal-private:$SANITIZED_ROLLING_BRANCH -t ${ORG_NAME}/core-nvidia-focal:$SANITIZED_BRANCH -t ${ORG_NAME}/core-nvidia-focal:$SANITIZED_ROLLING_BRANCH --build-arg BASE_IMAGE=ubuntu:20.04"" --build-arg BG_IMG=bg_bionic.png -f dockerfile-kasm-core-nvidia .
|
||||||
|
- docker push ${ORG_NAME}/core-nvidia-focal-private:$SANITIZED_BRANCH
|
||||||
|
- docker push ${ORG_NAME}/core-nvidia-focal-private:$SANITIZED_ROLLING_BRANCH
|
||||||
|
- docker push ${ORG_NAME}/core-nvidia-focal:$SANITIZED_BRANCH
|
||||||
|
- docker push ${ORG_NAME}/core-nvidia-focal:$SANITIZED_ROLLING_BRANCH
|
||||||
|
only:
|
||||||
|
- develop
|
||||||
|
- /^release\/.*$/
|
||||||
|
except:
|
||||||
|
- schedules
|
||||||
|
|
||||||
build_remnux_bionic:
|
build_remnux_bionic:
|
||||||
stage: build
|
stage: build
|
||||||
script:
|
script:
|
||||||
@ -87,13 +110,22 @@ build_centos:
|
|||||||
|
|
||||||
# These jobs should run on the feature/bugfix branches - anything that is not the develop or release branches. It should only push images to the private repos
|
# These jobs should run on the feature/bugfix branches - anything that is not the develop or release branches. It should only push images to the private repos
|
||||||
build_ubuntu_bionic_dev:
|
build_ubuntu_bionic_dev:
|
||||||
|
image: ${ORG_NAME}/docker-buildx-private:develop
|
||||||
stage: build
|
stage: build
|
||||||
|
variables:
|
||||||
|
BUILD_PLATFORMS: "linux/amd64,linux/arm64"
|
||||||
script:
|
script:
|
||||||
- docker build -t ${ORG_NAME}/core-ubuntu-bionic-private:$SANITIZED_BRANCH --build-arg BASE_IMAGE="ubuntu:18.04" --build-arg BG_IMG=bg_bionic.png -f dockerfile-kasm-core .
|
# get qemu ready
|
||||||
- docker push ${ORG_NAME}/core-ubuntu-bionic-private:$SANITIZED_BRANCH
|
- docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
|
||||||
|
# prep the buildx env
|
||||||
|
- docker buildx create --use
|
||||||
|
# build for multiple architectures
|
||||||
|
- docker buildx build --push --platform $BUILD_PLATFORMS -t ${ORG_NAME}/core-ubuntu-bionic-private:$SANITIZED_BRANCH --build-arg BASE_IMAGE="ubuntu:18.04" --build-arg BG_IMG=bg_bionic.png -f dockerfile-kasm-core .
|
||||||
except:
|
except:
|
||||||
- develop
|
- develop
|
||||||
- /^release\/.*$/
|
- /^release\/.*$/
|
||||||
|
tags:
|
||||||
|
- aws-autoscale
|
||||||
|
|
||||||
|
|
||||||
build_cuda_bionic_dev:
|
build_cuda_bionic_dev:
|
||||||
@ -105,6 +137,15 @@ build_cuda_bionic_dev:
|
|||||||
- develop
|
- develop
|
||||||
- /^release\/.*$/
|
- /^release\/.*$/
|
||||||
|
|
||||||
|
build_nvidia_focal_dev:
|
||||||
|
stage: build
|
||||||
|
script:
|
||||||
|
- docker build -t ${ORG_NAME}/core-nvidia-focal-private:$SANITIZED_BRANCH --build-arg BASE_IMAGE="ubuntu:20.04" --build-arg BG_IMG=bg_bionic.png -f dockerfile-kasm-core-nvidia .
|
||||||
|
- docker push ${ORG_NAME}/core-nvidia-focal-private:$SANITIZED_BRANCH
|
||||||
|
except:
|
||||||
|
- develop
|
||||||
|
- /^release\/.*$/
|
||||||
|
|
||||||
build_remnux_bionic_dev:
|
build_remnux_bionic_dev:
|
||||||
stage: build
|
stage: build
|
||||||
script:
|
script:
|
||||||
@ -137,12 +178,20 @@ build_centos_dev:
|
|||||||
# These jobs are for the "rolling" release of the images. They should only run for scheduled jobs and should only push the rolling tags
|
# These jobs are for the "rolling" release of the images. They should only run for scheduled jobs and should only push the rolling tags
|
||||||
build_ubuntu_bionic_scheduled:
|
build_ubuntu_bionic_scheduled:
|
||||||
stage: build
|
stage: build
|
||||||
|
image: ${ORG_NAME}/docker-buildx-private:develop
|
||||||
|
variables:
|
||||||
|
BUILD_PLATFORMS: "linux/amd64,linux/arm64"
|
||||||
script:
|
script:
|
||||||
- docker build -t ${ORG_NAME}/core-ubuntu-bionic-private:$SANITIZED_ROLLING_BRANCH -t ${ORG_NAME}/core-ubuntu-bionic:$SANITIZED_ROLLING_BRANCH --build-arg BASE_IMAGE="ubuntu:18.04" --build-arg BG_IMG=bg_bionic.png -f dockerfile-kasm-core .
|
# get qemu ready
|
||||||
- docker push ${ORG_NAME}/core-ubuntu-bionic-private:$SANITIZED_ROLLING_BRANCH
|
- docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
|
||||||
- docker push ${ORG_NAME}/core-ubuntu-bionic:$SANITIZED_ROLLING_BRANCH
|
# prep the buildx env
|
||||||
|
- docker buildx create --use
|
||||||
|
# build for multiple architectures
|
||||||
|
- docker buildx build --push --platform $BUILD_PLATFORMS -t ${ORG_NAME}/core-ubuntu-bionic-private:$SANITIZED_ROLLING_BRANCH -t ${ORG_NAME}/core-ubuntu-bionic:$SANITIZED_ROLLING_BRANCH --build-arg BASE_IMAGE="ubuntu:18.04" --build-arg BG_IMG=bg_bionic.png -f dockerfile-kasm-core .
|
||||||
only:
|
only:
|
||||||
- schedules
|
- schedules
|
||||||
|
tags:
|
||||||
|
- aws-autoscale
|
||||||
|
|
||||||
build_cuda_bionic_schedules:
|
build_cuda_bionic_schedules:
|
||||||
stage: build
|
stage: build
|
||||||
@ -153,6 +202,15 @@ build_cuda_bionic_schedules:
|
|||||||
only:
|
only:
|
||||||
- schedules
|
- schedules
|
||||||
|
|
||||||
|
build_nvidia_focal_schedules:
|
||||||
|
stage: build
|
||||||
|
script:
|
||||||
|
- docker build -t ${ORG_NAME}/core-nvidia-focal-private:$SANITIZED_ROLLING_BRANCH -t ${ORG_NAME}/core-nvidia-focal:$SANITIZED_ROLLING_BRANCH --build-arg BASE_IMAGE="ubuntu:20.04" --build-arg BG_IMG=bg_bionic.png -f dockerfile-kasm-core-nvidia .
|
||||||
|
- docker push ${ORG_NAME}/core-nvidia-focal-private:$SANITIZED_ROLLING_BRANCH
|
||||||
|
- docker push ${ORG_NAME}/core-nvidia-focal:$SANITIZED_ROLLING_BRANCH
|
||||||
|
only:
|
||||||
|
- schedules
|
||||||
|
|
||||||
build_remnux_bionic_schedules:
|
build_remnux_bionic_schedules:
|
||||||
stage: build
|
stage: build
|
||||||
script:
|
script:
|
||||||
@ -190,8 +248,8 @@ update_readmes:
|
|||||||
- git clone https://gitlab-ci-token:${CI_JOB_TOKEN}@${README_TEMPLATE_REPO}
|
- git clone https://gitlab-ci-token:${CI_JOB_TOKEN}@${README_TEMPLATE_REPO}
|
||||||
- sed -e "/{about}/r docs/$KASM_IMAGE/README.md" -e "/{about}/d" dockerhub-readme-template/TEMPLATE.md > docs/$KASM_IMAGE/FULL_README.md
|
- sed -e "/{about}/r docs/$KASM_IMAGE/README.md" -e "/{about}/d" dockerhub-readme-template/TEMPLATE.md > docs/$KASM_IMAGE/FULL_README.md
|
||||||
- cat docs/$KASM_IMAGE/FULL_README.md
|
- cat docs/$KASM_IMAGE/FULL_README.md
|
||||||
- docker run -v $PWD:/workspace -e DOCKER_USERNAME="$README_USERNAME" -e DOCKER_PASSWORD="$README_PASSWORD" -e DOCKERHUB_REPOSITORY="${ORG_NAME}/$KASM_IMAGE-private" -e README_FILEPATH="/workspace/docs/$KASM_IMAGE/FULL_README.md" -e DESCRIPTION_FILEPATH="/workspace/docs/$KASM_IMAGE/description.txt" kasmweb/dockerhub-updater:latest
|
- docker run -v $PWD:/workspace -e DOCKER_USERNAME="$README_USERNAME" -e DOCKER_PASSWORD="$README_PASSWORD" -e DOCKERHUB_REPOSITORY="${ORG_NAME}/$KASM_IMAGE-private" -e README_FILEPATH="/workspace/docs/$KASM_IMAGE/FULL_README.md" -e DESCRIPTION_FILEPATH="/workspace/docs/$KASM_IMAGE/description.txt" ${ORG_NAME}/dockerhub-updater:latest
|
||||||
- docker run -v $PWD:/workspace -e DOCKER_USERNAME="$README_USERNAME" -e DOCKER_PASSWORD="$README_PASSWORD" -e DOCKERHUB_REPOSITORY="${ORG_NAME}/$KASM_IMAGE" -e README_FILEPATH="/workspace/docs/$KASM_IMAGE/FULL_README.md" -e DESCRIPTION_FILEPATH="/workspace/docs/$KASM_IMAGE/description.txt" kasmweb/dockerhub-updater:latest
|
- docker run -v $PWD:/workspace -e DOCKER_USERNAME="$README_USERNAME" -e DOCKER_PASSWORD="$README_PASSWORD" -e DOCKERHUB_REPOSITORY="${ORG_NAME}/$KASM_IMAGE" -e README_FILEPATH="/workspace/docs/$KASM_IMAGE/FULL_README.md" -e DESCRIPTION_FILEPATH="/workspace/docs/$KASM_IMAGE/description.txt" ${ORG_NAME}/dockerhub-updater:latest
|
||||||
|
|
||||||
only:
|
only:
|
||||||
variables:
|
variables:
|
||||||
@ -199,4 +257,4 @@ update_readmes:
|
|||||||
- $README_PASSWORD
|
- $README_PASSWORD
|
||||||
parallel:
|
parallel:
|
||||||
matrix:
|
matrix:
|
||||||
- KASM_IMAGE: [core-centos-7, core-kali-rolling, core-remnux-bionic, core-cuda-bionic, core-ubuntu-bionic]
|
- KASM_IMAGE: [core-centos-7, core-kali-rolling, core-remnux-bionic, core-cuda-bionic, core-ubuntu-bionic, core-nvidia-focal]
|
||||||
|
@ -2,22 +2,13 @@ ARG BASE_IMAGE="ubuntu:18.04"
|
|||||||
FROM $BASE_IMAGE AS install_tools
|
FROM $BASE_IMAGE AS install_tools
|
||||||
ARG DISTRO=ubuntu
|
ARG DISTRO=ubuntu
|
||||||
|
|
||||||
### Install common tools
|
|
||||||
|
|
||||||
COPY ./src/ubuntu/install/tools $INST_SCRIPTS/tools/
|
|
||||||
RUN bash $INST_SCRIPTS/tools/install_tools.sh && rm -rf $INST_SCRIPTS/tools/
|
|
||||||
|
|
||||||
FROM install_tools AS squid_builder
|
|
||||||
|
|
||||||
### Build Squid
|
|
||||||
RUN wget 'https://kasmweb-build-artifacts.s3.amazonaws.com/kasm-squid-builder/a590f319f328a8a576cb966c2db5ec4a5b3b7b9b/output/kasm-squid-builder_ubuntu.tar.gz'
|
|
||||||
RUN tar -xzf kasm-squid-builder_ubuntu.tar.gz -C /
|
|
||||||
|
|
||||||
FROM install_tools
|
|
||||||
|
|
||||||
MAINTAINER Kasm Tech "info@kasmweb.com"
|
MAINTAINER Kasm Tech "info@kasmweb.com"
|
||||||
LABEL "com.kasmweb.image"="true"
|
LABEL "com.kasmweb.image"="true"
|
||||||
|
|
||||||
|
### Install common tools
|
||||||
|
COPY ./src/ubuntu/install/tools $INST_SCRIPTS/tools/
|
||||||
|
RUN bash $INST_SCRIPTS/tools/install_tools.sh && rm -rf $INST_SCRIPTS/tools/
|
||||||
|
|
||||||
### Environment config
|
### Environment config
|
||||||
ARG START_XFCE4=0
|
ARG START_XFCE4=0
|
||||||
ARG START_PULSEAUDIO=0
|
ARG START_PULSEAUDIO=0
|
||||||
@ -45,7 +36,7 @@ ENV DISPLAY=:1 \
|
|||||||
VNC_RESOLUTION=1280x1024 \
|
VNC_RESOLUTION=1280x1024 \
|
||||||
VNC_PW=vncpassword \
|
VNC_PW=vncpassword \
|
||||||
VNC_VIEW_ONLY_PW=vncviewonlypassword \
|
VNC_VIEW_ONLY_PW=vncviewonlypassword \
|
||||||
LD_LIBRARY_PATH=/usr/local/lib/ \
|
LD_LIBRARY_PATH=/opt/libjpeg-turbo/lib64/:/usr/local/lib/ \
|
||||||
OMP_WAIT_POLICY=PASSIVE \
|
OMP_WAIT_POLICY=PASSIVE \
|
||||||
SHELL=/bin/bash \
|
SHELL=/bin/bash \
|
||||||
START_XFCE4=$START_XFCE4 \
|
START_XFCE4=$START_XFCE4 \
|
||||||
@ -102,9 +93,6 @@ RUN bash $INST_SCRIPTS/audio_input/install_audio_input.sh && rm -rf $INST_SCRIPT
|
|||||||
COPY ./src/ubuntu/install/cursors $INST_SCRIPTS/cursors/
|
COPY ./src/ubuntu/install/cursors $INST_SCRIPTS/cursors/
|
||||||
RUN bash $INST_SCRIPTS/cursors/install_cursors.sh && rm -rf $INST_SCRIPTS/cursors/
|
RUN bash $INST_SCRIPTS/cursors/install_cursors.sh && rm -rf $INST_SCRIPTS/cursors/
|
||||||
|
|
||||||
### Copy built Squid
|
|
||||||
COPY --from=squid_builder /usr/local/squid /usr/local/squid
|
|
||||||
|
|
||||||
### Install Squid
|
### Install Squid
|
||||||
COPY ./src/ubuntu/install/squid/install/ $INST_SCRIPTS/squid_install/
|
COPY ./src/ubuntu/install/squid/install/ $INST_SCRIPTS/squid_install/
|
||||||
RUN bash $INST_SCRIPTS/squid_install/install_squid.sh && rm -rf $INST_SCRIPTS/squid_install/
|
RUN bash $INST_SCRIPTS/squid_install/install_squid.sh && rm -rf $INST_SCRIPTS/squid_install/
|
||||||
|
@ -1,9 +1,7 @@
|
|||||||
ARG BASE_IMAGE="nvidia/opengl:1.2-glvnd-runtime-ubuntu20.04"
|
ARG BASE_IMAGE="ubuntu:focal"
|
||||||
FROM $BASE_IMAGE AS install_tools
|
FROM $BASE_IMAGE AS install_tools
|
||||||
ARG DISTRO=ubuntu
|
|
||||||
|
|
||||||
### Install common tools
|
### Install common tools
|
||||||
|
|
||||||
COPY ./src/ubuntu/install/tools $INST_SCRIPTS/tools/
|
COPY ./src/ubuntu/install/tools $INST_SCRIPTS/tools/
|
||||||
RUN bash $INST_SCRIPTS/tools/install_tools.sh && rm -rf $INST_SCRIPTS/tools/
|
RUN bash $INST_SCRIPTS/tools/install_tools.sh && rm -rf $INST_SCRIPTS/tools/
|
||||||
|
|
||||||
@ -52,8 +50,7 @@ ENV DISPLAY=:1 \
|
|||||||
START_PULSEAUDIO=$START_PULSEAUDIO \
|
START_PULSEAUDIO=$START_PULSEAUDIO \
|
||||||
LANG=$LANG \
|
LANG=$LANG \
|
||||||
LANGUAGE=$LANGUAGE \
|
LANGUAGE=$LANGUAGE \
|
||||||
LC_ALL=$LC_ALL \
|
LC_ALL=$LC_ALL
|
||||||
NVIDIA_DRIVER_CAPABILITIES=$NVIDIA_DRIVER_CAPABILITIES,graphics,compat32
|
|
||||||
|
|
||||||
EXPOSE $VNC_PORT \
|
EXPOSE $VNC_PORT \
|
||||||
$NO_VNC_PORT \
|
$NO_VNC_PORT \
|
||||||
@ -63,6 +60,25 @@ EXPOSE $VNC_PORT \
|
|||||||
WORKDIR $HOME
|
WORKDIR $HOME
|
||||||
RUN mkdir -p $HOME/Desktop
|
RUN mkdir -p $HOME/Desktop
|
||||||
|
|
||||||
|
# NVIDIA SETUP
|
||||||
|
RUN echo "/usr/local/nvidia/lib" >> /etc/ld.so.conf.d/nvidia.conf && \
|
||||||
|
echo "/usr/local/nvidia/lib64" >> /etc/ld.so.conf.d/nvidia.conf
|
||||||
|
ENV LD_LIBRARY_PATH /usr/lib/x86_64-linux-gnu:/usr/lib/i386-linux-gnu${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}:/usr/local/nvidia/lib:/usr/local/nvidia/lib64
|
||||||
|
ENV NVIDIA_DRIVER_CAPABILITIES=${NVIDIA_DRIVER_CAPABILITIES:+$NVIDIA_DRIVER_CAPABILITIES,}graphics,compat32,utility
|
||||||
|
RUN dpkg --add-architecture i386 && \
|
||||||
|
apt-get update && apt-get install -y --no-install-recommends \
|
||||||
|
libxau6 libxau6:i386 \
|
||||||
|
libxdmcp6 libxdmcp6:i386 \
|
||||||
|
libxcb1 libxcb1:i386 \
|
||||||
|
libxext6 libxext6:i386 \
|
||||||
|
libx11-6 libx11-6:i386
|
||||||
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
|
libglvnd0 libglvnd0:i386 \
|
||||||
|
libgl1 libgl1:i386 \
|
||||||
|
libglx0 libglx0:i386 \
|
||||||
|
libegl1 libegl1:i386 \
|
||||||
|
libgles2 libgles2:i386
|
||||||
|
COPY src/ubuntu/install/nvidia/10_nvidia.json /usr/share/glvnd/egl_vendor.d/10_nvidia.json
|
||||||
|
|
||||||
### Install custom fonts
|
### Install custom fonts
|
||||||
COPY ./src/ubuntu/install/fonts $INST_SCRIPTS/fonts/
|
COPY ./src/ubuntu/install/fonts $INST_SCRIPTS/fonts/
|
||||||
@ -119,16 +135,11 @@ RUN rm -rf $INST_SCRIPTS/resources/
|
|||||||
RUN chmod +x /etc/squid/kasm_squid_adapter
|
RUN chmod +x /etc/squid/kasm_squid_adapter
|
||||||
RUN chmod +x /etc/squid/start_squid.sh && chmod 4755 /etc/squid/start_squid.sh
|
RUN chmod +x /etc/squid/start_squid.sh && chmod 4755 /etc/squid/start_squid.sh
|
||||||
|
|
||||||
### Setup Container User - Libnss Wrapper
|
|
||||||
#COPY ./src/ubuntu/install/libnss $INST_SCRIPTS/libnss/
|
|
||||||
#RUN bash $INST_SCRIPTS/libnss/libnss_wrapper.sh && rm -rf $INST_SCRIPTS/libnss/
|
|
||||||
|
|
||||||
### configure startup
|
### configure startup
|
||||||
COPY ./src/common/scripts/kasm_hook_scripts $STARTUPDIR
|
COPY ./src/common/scripts/kasm_hook_scripts $STARTUPDIR
|
||||||
ADD ./src/common/startup_scripts $STARTUPDIR
|
ADD ./src/common/startup_scripts $STARTUPDIR
|
||||||
RUN bash $STARTUPDIR/set_user_permission.sh $STARTUPDIR $HOME
|
RUN bash $STARTUPDIR/set_user_permission.sh $STARTUPDIR $HOME
|
||||||
|
|
||||||
|
|
||||||
### extra configurations needed per distro variant
|
### extra configurations needed per distro variant
|
||||||
COPY ./src/ubuntu/install/extra $INST_SCRIPTS/extra/
|
COPY ./src/ubuntu/install/extra $INST_SCRIPTS/extra/
|
||||||
RUN bash $INST_SCRIPTS/extra/$EXTRA_SH && rm -rf $INST_SCRIPTS/extra/
|
RUN bash $INST_SCRIPTS/extra/$EXTRA_SH && rm -rf $INST_SCRIPTS/extra/
|
7
docs/core-nvidia-focal/README.md
Normal file
7
docs/core-nvidia-focal/README.md
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# About This Image
|
||||||
|
|
||||||
|
This image contains a browser-accessible version of Ubuntu Focal Desktop with GPU Acceleration. Requires a compatible Nvidia
|
||||||
|
|
||||||
|
![Screenshot][Image_Screenshot]
|
||||||
|
|
||||||
|
[Image_Screenshot]: https://f.hubspotusercontent30.net/hubfs/5856039/dockerhub/image-screenshots/core-cuda-bionic.png "Image Screenshot"
|
1
docs/core-nvidia-focal/description.txt
Normal file
1
docs/core-nvidia-focal/description.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
Base image for Kasm Workspaces with 3D GPU Acceleration for compatible Nvidia based GPUs.
|
@ -57,7 +57,7 @@ function start_kasmvnc (){
|
|||||||
|
|
||||||
rm -rf $HOME/.vnc/*.pid
|
rm -rf $HOME/.vnc/*.pid
|
||||||
|
|
||||||
vncserver $DISPLAY -depth $VNC_COL_DEPTH -geometry $VNC_RESOLUTION -websocketPort $NO_VNC_PORT -cert ${HOME}/.vnc/self.pem -httpd ${KASM_VNC_PATH}/www -sslOnly -FrameRate=$MAX_FRAME_RATE -interface 0.0.0.0 $VNCOPTIONS
|
vncserver $DISPLAY -depth $VNC_COL_DEPTH -geometry $VNC_RESOLUTION -websocketPort $NO_VNC_PORT -cert ${HOME}/.vnc/self.pem -httpd ${KASM_VNC_PATH}/www -sslOnly -FrameRate=$MAX_FRAME_RATE -interface 0.0.0.0 $VNCOPTIONS $KASM_SVC_SEND_CUT_TEXT $KASM_SVC_ACCEPT_CUT_TEXT
|
||||||
|
|
||||||
KASM_PROCS['kasmvnc']=$(cat $HOME/.vnc/*${DISPLAY_NUM}.pid)
|
KASM_PROCS['kasmvnc']=$(cat $HOME/.vnc/*${DISPLAY_NUM}.pid)
|
||||||
|
|
||||||
@ -98,11 +98,11 @@ function start_audio_out (){
|
|||||||
|
|
||||||
if [[ $DEBUG == true ]]; then
|
if [[ $DEBUG == true ]]; then
|
||||||
echo 'Starting audio service in debug mode'
|
echo 'Starting audio service in debug mode'
|
||||||
no_proxy=127.0.0.1 ffmpeg -f pulse -ar 44100 -i default -f mpegts -correct_ts_overflow 0 -codec:a mp2 -b:a 128k -ac 1 -muxdelay 0.001 http://127.0.0.1:8081/kasmaudio &
|
no_proxy=127.0.0.1 ffmpeg -f pulse -fragment_size ${PULSEAUDIO_FRAGMENT_SIZE:-2000} -ar 44100 -i default -f mpegts -correct_ts_overflow 0 -codec:a mp2 -b:a 128k -ac 1 -muxdelay 0.001 http://127.0.0.1:8081/kasmaudio &
|
||||||
KASM_PROCS['kasm_audio_out']=$!
|
KASM_PROCS['kasm_audio_out']=$!
|
||||||
else
|
else
|
||||||
echo 'Starting audio service'
|
echo 'Starting audio service'
|
||||||
no_proxy=127.0.0.1 ffmpeg -v verbose -f pulse -ar 44100 -i default -f mpegts -correct_ts_overflow 0 -codec:a mp2 -b:a 128k -ac 1 -muxdelay 0.001 http://127.0.0.1:8081/kasmaudio > /dev/null 2>&1 &
|
no_proxy=127.0.0.1 ffmpeg -v verbose -f pulse -fragment_size ${PULSEAUDIO_FRAGMENT_SIZE:-2000} -ar 44100 -i default -f mpegts -correct_ts_overflow 0 -codec:a mp2 -b:a 128k -ac 1 -muxdelay 0.001 http://127.0.0.1:8081/kasmaudio > /dev/null 2>&1 &
|
||||||
KASM_PROCS['kasm_audio_out']=$!
|
KASM_PROCS['kasm_audio_out']=$!
|
||||||
echo -e "\n------------------ Started Audio Out ----------------------------"
|
echo -e "\n------------------ Started Audio Out ----------------------------"
|
||||||
echo "Kasm Audio Out PID: ${KASM_PROCS['kasm_audio_out']}";
|
echo "Kasm Audio Out PID: ${KASM_PROCS['kasm_audio_out']}";
|
||||||
@ -211,7 +211,7 @@ if [ -f "$custom_startup_script" ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
"$custom_startup_script" || true
|
"$custom_startup_script" &
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Monitor Kasm Services
|
# Monitor Kasm Services
|
||||||
|
@ -1,26 +1,50 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
|
install_libjpeg_turbo() {
|
||||||
|
local libjpeg_deb=libjpeg-turbo.deb
|
||||||
|
|
||||||
|
wget "https://kasmweb-build-artifacts.s3.amazonaws.com/kasmvnc/${COMMIT_ID}/output/${UBUNTU_CODENAME}/libjpeg-turbo_2.1.2_amd64.deb" -O "$libjpeg_deb"
|
||||||
|
apt-get install -y "./$libjpeg_deb"
|
||||||
|
rm "$libjpeg_deb"
|
||||||
|
}
|
||||||
|
|
||||||
echo "Install KasmVNC server"
|
echo "Install KasmVNC server"
|
||||||
cd /tmp
|
cd /tmp
|
||||||
|
|
||||||
|
BUILD_ARCH=$(uname -p)
|
||||||
|
UBUNTU_CODENAME=$(grep -Po -m 1 "(?<=_CODENAME=)\w+" /etc/os-release)
|
||||||
|
COMMIT_ID="986c635cd3cbd468f5fd4a67ddaa9566b6e6e64f"
|
||||||
|
BRANCH="feature_KASM-2119_focal"
|
||||||
|
COMMIT_ID_SHORT=$(echo "${COMMIT_ID}" | cut -c1-6)
|
||||||
|
|
||||||
if [ "${DISTRO}" == "kali" ] ;
|
if [ "${DISTRO}" == "kali" ] ;
|
||||||
then
|
then
|
||||||
BUILD_URL="https://kasmweb-build-artifacts.s3.amazonaws.com/kasmvnc/bcad19542e02921f1f275532cc7854559d737cb5/kasmvncserver_kali-rolling_0.9.3_master_bcad19_amd64.deb"
|
BUILD_URL="https://kasmweb-build-artifacts.s3.amazonaws.com/kasmvnc/${COMMIT_ID}/kasmvncserver_kali-rolling_0.9.3_${BRANCH}_${COMMIT_ID_SHORT}_amd64.deb"
|
||||||
elif [ "${DISTRO}" == "centos" ] ; then
|
elif [ "${DISTRO}" == "centos" ] ; then
|
||||||
BUILD_URL="https://kasmweb-build-artifacts.s3.amazonaws.com/kasmvnc/bcad19542e02921f1f275532cc7854559d737cb5/output/centos_core/kasmvncserver-0.9.1~beta-1.el7.x86_64.rpm"
|
BUILD_URL="https://kasmweb-build-artifacts.s3.amazonaws.com/kasmvnc/${COMMIT_ID}/output/centos_core/kasmvncserver-0.9.1~beta-1.el7.x86_64.rpm"
|
||||||
else
|
else
|
||||||
UBUNTU_CODENAME=$(grep -Po -m 1 "(?<=_CODENAME=)\w+" /etc/os-release)
|
if [[ "${BUILD_ARCH}" =~ ^aarch64$ ]] ; then
|
||||||
BUILD_URL="https://kasmweb-build-artifacts.s3.amazonaws.com/kasmvnc/bcad19542e02921f1f275532cc7854559d737cb5/kasmvncserver_${UBUNTU_CODENAME}_0.9.3_master_bcad19_amd64.deb"
|
BUILD_URL="https://kasmweb-build-artifacts.s3.amazonaws.com/kasmvnc/${COMMIT_ID}/kasmvncserver_${UBUNTU_CODENAME}_0.9.3_${BRANCH}_${COMMIT_ID_SHORT}_arm64.deb"
|
||||||
|
elif [ "${UBUNTU_CODENAME}" == "bionic" ] ; then
|
||||||
|
BUILD_URL="https://kasmweb-build-artifacts.s3.amazonaws.com/kasmvnc/${COMMIT_ID}/kasmvncserver_${UBUNTU_CODENAME}_0.9.3_${BRANCH}_${COMMIT_ID_SHORT}_libjpeg-turbo-latest_amd64.deb"
|
||||||
|
else
|
||||||
|
BUILD_URL="https://kasmweb-build-artifacts.s3.amazonaws.com/kasmvnc/${COMMIT_ID}/kasmvncserver_${UBUNTU_CODENAME}_0.9.3_${BRANCH}_${COMMIT_ID_SHORT}_amd64.deb"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
if [ "${DISTRO}" == "centos" ] ; then
|
if [ "${DISTRO}" == "centos" ] ; then
|
||||||
wget $BUILD_URL -O kasmvncserver.rpm
|
wget "${BUILD_URL}" -O kasmvncserver.rpm
|
||||||
|
|
||||||
yum localinstall -y kasmvncserver.rpm
|
yum localinstall -y kasmvncserver.rpm
|
||||||
rm kasmvncserver.rpm
|
rm kasmvncserver.rpm
|
||||||
else
|
else
|
||||||
wget $BUILD_URL -O kasmvncserver.deb
|
if [[ "${UBUNTU_CODENAME}" = "bionic" ]] && [[ ! "$BUILD_ARCH" =~ ^aarch64$ ]] ; then
|
||||||
|
install_libjpeg_turbo
|
||||||
|
fi
|
||||||
|
|
||||||
|
wget "${BUILD_URL}" -O kasmvncserver.deb
|
||||||
|
|
||||||
apt-get update
|
apt-get update
|
||||||
apt-get install -y gettext ssl-cert
|
apt-get install -y gettext ssl-cert
|
||||||
|
7
src/ubuntu/install/nvidia/10_nvidia.json
Normal file
7
src/ubuntu/install/nvidia/10_nvidia.json
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"file_format_version" : "1.0.0",
|
||||||
|
"ICD" : {
|
||||||
|
"library_path" : "libEGL_nvidia.so.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,8 +1,18 @@
|
|||||||
# update squid conf with user info
|
#!/bin/bash
|
||||||
set -ex
|
set -ex
|
||||||
|
|
||||||
ARCH=$(arch | sed 's/aarch64/arm64/g' | sed 's/x86_64/amd64/g')
|
ARCH=$(arch | sed 's/aarch64/arm64/g' | sed 's/x86_64/amd64/g')
|
||||||
|
|
||||||
|
# intall squid
|
||||||
|
SQUID_COMMIT='6392f7dfb1040c67c0a5d5518abf508282523cc0'
|
||||||
|
SQUID_DISTRO=${DISTRO}
|
||||||
|
# currently all distros use the ubuntu build of squid except centos
|
||||||
|
if [ ! "${SQUID_DISTRO}" == "centos" ] ; then
|
||||||
|
SQUID_DISTRO="ubuntu"
|
||||||
|
fi
|
||||||
|
wget -qO- "https://kasmweb-build-artifacts.s3.amazonaws.com/kasm-squid-builder/${SQUID_COMMIT}/output/kasm-squid-builder_${SQUID_DISTRO}_${ARCH}.tar.gz" | tar -xzf - -C /
|
||||||
|
|
||||||
|
# update squid conf with user info
|
||||||
if [ "$DISTRO" = centos ]; then
|
if [ "$DISTRO" = centos ]; then
|
||||||
useradd --system --shell /usr/sbin/nologin --home-dir /bin proxy
|
useradd --system --shell /usr/sbin/nologin --home-dir /bin proxy
|
||||||
fi
|
fi
|
||||||
@ -42,8 +52,7 @@ log_level: 5
|
|||||||
sasldb_path: /etc/sasl2/memcached-sasldb2
|
sasldb_path: /etc/sasl2/memcached-sasldb2
|
||||||
EOL
|
EOL
|
||||||
|
|
||||||
|
KASM_SQUID_ADAPTER=https://kasmweb-build-artifacts.s3.amazonaws.com/kasm_squid_adapter/faec132e9797ebf09cfa58bd59b60c77b0b1a64b/kasm_squid_adapter_${DISTRO/kali/ubuntu}_${ARCH}_develop.faec13.tar.gz
|
||||||
KASM_SQUID_ADAPTER=https://kasmweb-build-artifacts.s3.amazonaws.com/kasm_squid_adapter/d03389153257831e2378a3629c560e4d34f7e772/kasm_squid_adapter_${DISTRO/kali/ubuntu}_${ARCH}_develop.d03389.tar.gz
|
|
||||||
|
|
||||||
wget -qO- ${KASM_SQUID_ADAPTER} | tar xz -C /etc/squid/
|
wget -qO- ${KASM_SQUID_ADAPTER} | tar xz -C /etc/squid/
|
||||||
ls -la /etc/squid
|
ls -la /etc/squid
|
||||||
|
Loading…
x
Reference in New Issue
Block a user