diff --git a/ci-scripts/template-vars.yaml b/ci-scripts/template-vars.yaml index d535220..8640127 100644 --- a/ci-scripts/template-vars.yaml +++ b/ci-scripts/template-vars.yaml @@ -649,6 +649,35 @@ multiImages: - src/ubuntu/install/cleanup/** - src/ubuntu/install/chromium/** - src/ubuntu/install/chrome/** + - name: ubuntu-noble-dind + singleapp: false + base: core-ubuntu-noble + dockerfile: dockerfile-kasm-ubuntu-noble-dind + changeFiles: + - dockerfile-kasm-ubuntu-noble-dind + - src/ubuntu/install/vs_code/** + - src/ubuntu/install/tools/** + - src/ubuntu/install/sublime_text/** + - src/ubuntu/install/misc/** + - src/ubuntu/install/dind/** + - src/ubuntu/install/cleanup/** + - src/ubuntu/install/chromium/** + - src/ubuntu/install/chrome/** + - name: ubuntu-noble-dind-rootless + singleapp: false + base: core-ubuntu-noble + dockerfile: dockerfile-kasm-ubuntu-noble-dind-rootless + changeFiles: + - dockerfile-kasm-ubuntu-noble-dind-rootless + - src/ubuntu/install/vs_code/** + - src/ubuntu/install/vs_code/** + - src/ubuntu/install/tools/** + - src/ubuntu/install/sublime_text/** + - src/ubuntu/install/misc/** + - src/ubuntu/install/dind_rootless/** + - src/ubuntu/install/cleanup/** + - src/ubuntu/install/chromium/** + - src/ubuntu/install/chrome/** - name: vivaldi singleapp: true base: core-ubuntu-focal diff --git a/dockerfile-kasm-ubuntu-noble-dind b/dockerfile-kasm-ubuntu-noble-dind new file mode 100644 index 0000000..5d32051 --- /dev/null +++ b/dockerfile-kasm-ubuntu-noble-dind @@ -0,0 +1,51 @@ +ARG BASE_TAG="develop" +ARG BASE_IMAGE="core-ubuntu-noble" +FROM kasmweb/$BASE_IMAGE:$BASE_TAG +USER root + +ENV HOME /home/kasm-default-profile +ENV STARTUPDIR /dockerstartup +WORKDIR $HOME + +### Envrionment config +ENV DEBUG=false \ + DEBIAN_FRONTEND=noninteractive \ + SKIP_CLEAN=true \ + KASM_RX_HOME=$STARTUPDIR/kasmrx \ + DONT_PROMPT_WSL_INSTALL="No_Prompt_please" \ + INST_DIR=$STARTUPDIR/install \ + INST_SCRIPTS="/ubuntu/install/dind/install_dind.sh \ + /ubuntu/install/tools/install_tools_deluxe.sh \ + /ubuntu/install/misc/install_tools.sh \ + /ubuntu/install/chrome/install_chrome.sh \ + /ubuntu/install/chromium/install_chromium.sh \ + /ubuntu/install/sublime_text/install_sublime_text.sh \ + /ubuntu/install/vs_code/install_vs_code.sh \ + /ubuntu/install/cleanup/cleanup.sh" + +# Startup Scripts +COPY ./src/ubuntu/install/dind/custom_startup.sh $STARTUPDIR/custom_startup.sh +RUN chmod 755 $STARTUPDIR/custom_startup.sh +COPY ./src/ubuntu/install/dind/dockerd.conf /etc/supervisor/conf.d/ + +# Copy install scripts +COPY ./src/ $INST_DIR + +# Run installations +RUN \ + for SCRIPT in $INST_SCRIPTS; do \ + bash ${INST_DIR}${SCRIPT} || exit 1; \ + done && \ + $STARTUPDIR/set_user_permission.sh $HOME && \ + rm -f /etc/X11/xinit/Xclients && \ + chown 1000:0 $HOME && \ + mkdir -p /home/kasm-user && \ + chown -R 1000:0 /home/kasm-user && \ + rm -Rf ${INST_DIR} + +# Userspace Runtime +ENV HOME /home/kasm-user +WORKDIR $HOME +USER 1000 + +CMD ["--tail-log"] diff --git a/dockerfile-kasm-ubuntu-noble-dind-rootless b/dockerfile-kasm-ubuntu-noble-dind-rootless new file mode 100644 index 0000000..c8fe20f --- /dev/null +++ b/dockerfile-kasm-ubuntu-noble-dind-rootless @@ -0,0 +1,57 @@ +ARG BASE_TAG="develop" +ARG BASE_IMAGE="core-ubuntu-noble" +FROM kasmweb/$BASE_IMAGE:$BASE_TAG +USER root + +ENV HOME /home/kasm-default-profile +ENV STARTUPDIR /dockerstartup +ENV INST_SCRIPTS $STARTUPDIR/install +WORKDIR $HOME + +# Rootless Dind +COPY ./src/ubuntu/install/dind_rootless/install_dind_rootless.sh $INST_SCRIPTS/dind_rootless/ +RUN bash $INST_SCRIPTS/dind_rootless/install_dind_rootless.sh +RUN rm -rf $INST_SCRIPTS/dind_rootless +COPY ./src/ubuntu/install/dind_rootless/custom_startup.sh $STARTUPDIR/custom_startup.sh +RUN chmod +x $STARTUPDIR/custom_startup.sh && chmod 755 $STARTUPDIR/custom_startup.sh +COPY ./src/ubuntu/install/dind_rootless/modprobe /usr/local/bin/modprobe +RUN chmod +x /usr/local/bin/modprobe +ENV XDG_RUNTIME_DIR=/docker \ + DOCKER_HOST=unix:///docker/docker.sock +RUN mkdir -p $XDG_RUNTIME_DIR && chown 1000:0 $XDG_RUNTIME_DIR + +### Envrionment config +ENV DEBIAN_FRONTEND=noninteractive \ + SKIP_CLEAN=true \ + KASM_RX_HOME=$STARTUPDIR/kasmrx \ + DONT_PROMPT_WSL_INSTALL="No_Prompt_please" \ + INST_DIR=$STARTUPDIR/install \ + INST_SCRIPTS="/ubuntu/install/tools/install_tools_deluxe.sh \ + /ubuntu/install/misc/install_tools.sh \ + /ubuntu/install/chrome/install_chrome.sh \ + /ubuntu/install/chromium/install_chromium.sh \ + /ubuntu/install/sublime_text/install_sublime_text.sh \ + /ubuntu/install/vs_code/install_vs_code.sh \ + /ubuntu/install/cleanup/cleanup.sh" + +# Copy install scripts +COPY ./src/ $INST_DIR + +# Run installations +RUN \ + for SCRIPT in $INST_SCRIPTS; do \ + bash ${INST_DIR}${SCRIPT} || exit 1; \ + done && \ + $STARTUPDIR/set_user_permission.sh $HOME && \ + rm -f /etc/X11/xinit/Xclients && \ + chown 1000:0 $HOME && \ + mkdir -p /home/kasm-user && \ + chown -R 1000:0 /home/kasm-user && \ + rm -Rf ${INST_DIR} + +# Userspace Runtime +ENV HOME /home/kasm-user +WORKDIR $HOME +USER 1000 + +CMD ["--tail-log"] diff --git a/docs/ubuntu-noble-dind-rootless/README.md b/docs/ubuntu-noble-dind-rootless/README.md new file mode 100644 index 0000000..5e7bc79 --- /dev/null +++ b/docs/ubuntu-noble-dind-rootless/README.md @@ -0,0 +1,13 @@ +# About This Image + +This Image contains a browser-accessible version of [Docker](https://www.docker.com/) running as a normal, non-root user. + +![Screenshot][Image_Screenshot] + +[Image_Screenshot]: https://5856039.fs1.hubspotusercontent-na1.net/hubfs/5856039/dockerhub/image-screenshots/ubuntu-jammy-dind-rootless.png "Image Screenshot" + +See [Kasm Docs](https://kasmweb.com/docs/latest/how_to/docker_in_kasm.html) for additional setup instructions. + +# Environment Variables + +* `APP_ARGS` - Additional arguments to pass to the application when launched. diff --git a/docs/ubuntu-noble-dind-rootless/demo.txt b/docs/ubuntu-noble-dind-rootless/demo.txt new file mode 100644 index 0000000..b218e24 --- /dev/null +++ b/docs/ubuntu-noble-dind-rootless/demo.txt @@ -0,0 +1,9 @@ +# Live Demo + +**Launch a real-time demo in a new browser window:** Live Demo. + + + +∗*Docker will not be functional in the demo for security reasons.* + +∗*Note: Demo is limited to 3 minutes and has upload/downloads restricted for security purposes.* diff --git a/docs/ubuntu-noble-dind-rootless/description.txt b/docs/ubuntu-noble-dind-rootless/description.txt new file mode 100644 index 0000000..f976460 --- /dev/null +++ b/docs/ubuntu-noble-dind-rootless/description.txt @@ -0,0 +1 @@ +Rootless Docker for Kasm Workspaces \ No newline at end of file diff --git a/docs/ubuntu-noble-dind/README.md b/docs/ubuntu-noble-dind/README.md new file mode 100644 index 0000000..dff8028 --- /dev/null +++ b/docs/ubuntu-noble-dind/README.md @@ -0,0 +1,13 @@ +# About This Image + +This Image contains a browser-accessible version of [Docker](https://www.docker.com/). + +![Screenshot][Image_Screenshot] + +[Image_Screenshot]: https://5856039.fs1.hubspotusercontent-na1.net/hubfs/5856039/dockerhub/image-screenshots/ubuntu-jammy-dind.png "Image Screenshot" + +See [Kasm Docs](https://kasmweb.com/docs/latest/how_to/docker_in_kasm.html) for additional setup instructions. + +# Environment Variables + +* `APP_ARGS` - Additional arguments to pass to the application when launched. diff --git a/docs/ubuntu-noble-dind/demo.txt b/docs/ubuntu-noble-dind/demo.txt new file mode 100644 index 0000000..ed5ae83 --- /dev/null +++ b/docs/ubuntu-noble-dind/demo.txt @@ -0,0 +1,9 @@ +# Live Demo + +**Launch a real-time demo in a new browser window:** Live Demo. + + + +∗*Docker will not be functional in the demo for security reasons.* + +∗*Note: Demo is limited to 3 minutes and has upload/downloads restricted for security purposes.* diff --git a/docs/ubuntu-noble-dind/description.txt b/docs/ubuntu-noble-dind/description.txt new file mode 100644 index 0000000..3f8c02c --- /dev/null +++ b/docs/ubuntu-noble-dind/description.txt @@ -0,0 +1 @@ +Docker for Kasm Workspaces \ No newline at end of file diff --git a/src/ubuntu/install/firefox/install_firefox.sh b/src/ubuntu/install/firefox/install_firefox.sh index 4096143..782b016 100644 --- a/src/ubuntu/install/firefox/install_firefox.sh +++ b/src/ubuntu/install/firefox/install_firefox.sh @@ -32,9 +32,18 @@ Pin-Priority: 1001 fi apt-get install -y firefox p11-kit-modules elif grep -q "ID=debian" /etc/os-release || grep -q "ID=kali" /etc/os-release || grep -q "ID=parrot" /etc/os-release; then - echo \ - "deb http://deb.debian.org/debian/ unstable main contrib non-free" >> \ - /etc/apt/sources.list + if grep -q "bullseye" /etc/os-release; then + apt-get update + apt-get install -y firefox-esr p11-kit-modules + rm -f $HOME/Desktop/firefox.desktop + cp \ + /usr/share/applications/firefox-esr.desktop \ + $HOME/Desktop/ + chmod +x $HOME/Desktop/firefox-esr.desktop + else + echo \ + "deb http://deb.debian.org/debian/ unstable main contrib non-free" >> \ + /etc/apt/sources.list cat > /etc/apt/preferences.d/99pin-unstable <