Diplomarbeit-Absolventenverein

workspaces/universal (ubi9)

Published 2025-07-21 20:32:04 +00:00 by Kocoder

Installation

docker pull git.kocoder.xyz/diplomarbeit-absolventenverein/workspaces/universal:ubi9
sha256:ab2d97d34ea844e7d165145cd79959d25dc5e27cf013b117b4dc25d4b44c5a40

Image Layers

LABEL maintainer="Red Hat, Inc." vendor="Red Hat, Inc."
LABEL url="https://www.redhat.com"
LABEL com.redhat.component="ubi9-container" name="ubi9" version="9.6" distribution-scope="public"
LABEL com.redhat.license_terms="https://www.redhat.com/en/about/red-hat-end-user-license-agreements#UBI"
LABEL summary="Provides the latest release of Red Hat Universal Base Image 9."
LABEL description="The Universal Base Image is designed and engineered to be the base layer for all of your containerized applications, middleware and utilities. This base image is freely redistributable, but Red Hat only supports Red Hat technologies through subscriptions for Red Hat products. This image is maintained by Red Hat and updated regularly."
LABEL io.k8s.description="The Universal Base Image is designed and engineered to be the base layer for all of your containerized applications, middleware and utilities. This base image is freely redistributable, but Red Hat only supports Red Hat technologies through subscriptions for Red Hat products. This image is maintained by Red Hat and updated regularly."
LABEL io.k8s.display-name="Red Hat Universal Base Image 9"
LABEL io.openshift.expose-services=""
LABEL io.openshift.tags="base rhel9"
ENV container oci
COPY dir:d030c7d773f0a9a0288768cf73fd68603fb78790fc50998f9cb91d0c08117212 in /
COPY file:b37d593713ee21ad52a4cd1424dc019a24f7966f85df0ac4b86d234302695328 in /etc/yum.repos.d/.
CMD ["/bin/bash"]
COPY file:58cc94f5b3b2d60de2c77a6ed4b1797dcede502ccdb429a72e7a72d994235b3c in /usr/share/buildinfo/content-sets.json
LABEL "build-date"="2025-05-14T10:40:37" "architecture"="x86_64" "vcs-type"="git" "vcs-ref"="2f42d95842ada13f4b1358571e36e1ab62406115" "release"="1747219013"
ARG TARGETARCH
LABEL maintainer=Red Hat, Inc.
LABEL com.redhat.component=devfile-base-container
LABEL name=devfile/base-developer-image
LABEL version=ubi9
LABEL com.redhat.license_terms=https://www.redhat.com/en/about/red-hat-end-user-license-agreements#UBI
LABEL summary=devfile base developer image
LABEL description=Image with base developers tools. Languages SDK and runtimes excluded.
LABEL io.k8s.display-name=devfile-developer-base
LABEL io.openshift.expose-services=
USER 0
ENV HOME=/home/tooling
RUN |1 TARGETARCH=amd64 /bin/sh -c mkdir -p /home/tooling/ # buildkit
RUN |1 TARGETARCH=amd64 /bin/sh -c dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm && dnf install -y diffutils git git-lfs iproute jq less lsof man nano procps p7zip p7zip-plugins perl-Digest-SHA net-tools openssh-clients rsync socat sudo time vim wget zip stow && dnf update -y && dnf clean all # buildkit
RUN |1 TARGETARCH=amd64 /bin/sh -c dnf -y reinstall shadow-utils && dnf -y install podman buildah skopeo fuse-overlayfs && dnf clean all # buildkit
RUN |1 TARGETARCH=amd64 /bin/sh -c TEMP_DIR="$(mktemp -d)"; cd "${TEMP_DIR}"; GH_VERSION="2.73.0"; GH_ARCH="linux_$TARGETARCH"; GH_TGZ="gh_${GH_VERSION}_${GH_ARCH}.tar.gz"; GH_TGZ_URL="https://github.com/cli/cli/releases/download/v${GH_VERSION}/${GH_TGZ}"; GH_CHEKSUMS_URL="https://github.com/cli/cli/releases/download/v${GH_VERSION}/gh_${GH_VERSION}_checksums.txt"; curl -sSLO "${GH_TGZ_URL}"; curl -sSLO "${GH_CHEKSUMS_URL}"; sha256sum --ignore-missing -c "gh_${GH_VERSION}_checksums.txt" 2>&1 | grep OK; tar -zxv --no-same-owner -f "${GH_TGZ}"; mv "gh_${GH_VERSION}_${GH_ARCH}"/bin/gh /usr/local/bin/; mv "gh_${GH_VERSION}_${GH_ARCH}"/share/man/man1/* /usr/local/share/man/man1; cd -; rm -rf "${TEMP_DIR}" # buildkit
RUN |1 TARGETARCH=amd64 /bin/sh -c TEMP_DIR="$(mktemp -d)"; cd "${TEMP_DIR}"; RG_VERSION="13.0.0"; if [ "$TARGETARCH" = "arm64" ]; then RG_ARCH="arm-unknown-linux-gnueabihf"; else RG_ARCH="x86_64-unknown-linux-musl"; fi; RG_TGZ="ripgrep-${RG_VERSION}-${RG_ARCH}.tar.gz"; RG_TGZ_URL="https://github.com/BurntSushi/ripgrep/releases/download/${RG_VERSION}/${RG_TGZ}"; curl -sSLO "${RG_TGZ_URL}"; tar -zxv --no-same-owner -f "${RG_TGZ}"; mv "ripgrep-${RG_VERSION}-${RG_ARCH}"/rg /usr/local/bin/; mv "ripgrep-${RG_VERSION}-${RG_ARCH}"/doc/rg.1 /usr/local/share/man/man1; cd -; rm -rf "${TEMP_DIR}" # buildkit
RUN |1 TARGETARCH=amd64 /bin/sh -c TEMP_DIR="$(mktemp -d)"; cd "${TEMP_DIR}"; BAT_VERSION="0.18.3"; if [ "$TARGETARCH" = "arm64" ]; then BAT_ARCH="aarch64-unknown-linux-gnu"; else BAT_ARCH="x86_64-unknown-linux-musl"; fi; BAT_TGZ="bat-v${BAT_VERSION}-${BAT_ARCH}.tar.gz"; BAT_TGZ_URL="https://github.com/sharkdp/bat/releases/download/v${BAT_VERSION}/${BAT_TGZ}"; curl -sSLO "${BAT_TGZ_URL}"; tar -zxv --no-same-owner -f "${BAT_TGZ}"; mv "bat-v${BAT_VERSION}-${BAT_ARCH}"/bat /usr/local/bin/; mv "bat-v${BAT_VERSION}-${BAT_ARCH}"/bat.1 /usr/local/share/man/man1; cd -; rm -rf "${TEMP_DIR}" # buildkit
RUN |1 TARGETARCH=amd64 /bin/sh -c TEMP_DIR="$(mktemp -d)" && cd "${TEMP_DIR}" && FD_VERSION="8.7.0" && if [ "$TARGETARCH" = "arm64" ]; then FD_ARCH="aarch64-unknown-linux-gnu"; else FD_ARCH="x86_64-unknown-linux-musl"; fi && FD_TGZ="fd-v${FD_VERSION}-${FD_ARCH}.tar.gz" && FD_TGZ_URL="https://github.com/sharkdp/fd/releases/download/v${FD_VERSION}/${FD_TGZ}" && curl -sSLO "${FD_TGZ_URL}" && tar -xv --no-same-owner -f "${FD_TGZ}" && mv "fd-v${FD_VERSION}-${FD_ARCH}"/fd /usr/local/bin && mv "fd-v${FD_VERSION}-${FD_ARCH}"/fd.1 /usr/local/share/man/man1 && cd - && rm -rf "${TEMP_DIR}" # buildkit
ENV PATH=/home/user/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ENV _BUILDAH_STARTED_IN_USERNS= BUILDAH_ISOLATION=chroot
RUN |1 TARGETARCH=amd64 /bin/sh -c touch /etc/subgid /etc/subuid && chmod g=u /etc/subgid /etc/subuid /etc/passwd && echo user:10000:65536 > /etc/subuid && echo user:10000:65536 > /etc/subgid # buildkit
RUN |1 TARGETARCH=amd64 /bin/sh -c sed -i -e 's|^#mount_program|mount_program|g' -e '/additionalimage.*/a "/var/lib/shared",' /etc/containers/storage.conf # buildkit
RUN |1 TARGETARCH=amd64 /bin/sh -c mkdir -p /var/lib/shared/overlay-images /var/lib/shared/overlay-layers; touch /var/lib/shared/overlay-images/images.lock; touch /var/lib/shared/overlay-layers/layers.lock # buildkit
ENV KUBEDOCK_VERSION=0.18.1
ENV KUBECONFIG=/home/user/.kube/config
RUN |1 TARGETARCH=amd64 /bin/sh -c KUBEDOCK_ARCH="linux_amd64" && curl -L https://github.com/joyrex2001/kubedock/releases/download/${KUBEDOCK_VERSION}/kubedock_${KUBEDOCK_VERSION}_${KUBEDOCK_ARCH}.tar.gz | tar -C /usr/local/bin -xz --no-same-owner && chmod +x /usr/local/bin/kubedock # buildkit
COPY kubedock_setup.sh /usr/local/bin/kubedock_setup # buildkit
ENV PODMAN_WRAPPER_PATH=/usr/bin/podman.wrapper
ENV ORIGINAL_PODMAN_PATH=/usr/bin/podman.orig
COPY podman-wrapper.sh /usr/bin/podman.wrapper # buildkit
RUN |1 TARGETARCH=amd64 /bin/sh -c mv /usr/bin/podman "${ORIGINAL_PODMAN_PATH}" # buildkit
COPY entrypoint.sh / # buildkit
COPY .stow-local-ignore /home/tooling/ # buildkit
RUN |1 TARGETARCH=amd64 /bin/sh -c useradd -u 10001 -G wheel,root -d /home/user --shell /bin/bash -m user && touch /etc/profile.d/udi_prompt.sh && chown 10001 /etc/profile.d/udi_prompt.sh && echo "export PS1='\W \`git branch --show-current 2>/dev/null | sed -r -e \"s@^(.+)@\(\1\) @\"\`$ '" >> /etc/profile.d/udi_prompt.sh && cp /etc/gitconfig ${HOME}/.gitconfig && chown 10001 ${HOME}/ ${HOME}/.viminfo ${HOME}/.gitconfig ${HOME}/.stow-local-ignore && chgrp -R 0 /home && chmod -R g=u /etc/passwd /etc/group /home && chmod +x /entrypoint.sh && stow . -t /home/user/ -d /home/tooling/ && cp /home/tooling/.viminfo /home/user/.viminfo && cp /home/user/.bashrc /home/tooling/.bashrc && cp /home/user/.bash_profile /home/tooling/.bash_profile && chown 10001 /home/tooling/.bashrc /home/tooling/.bash_profile # buildkit
USER 10001
ENV HOME=/home/user
WORKDIR /projects
ENTRYPOINT ["/entrypoint.sh"]
CMD ["tail" "-f" "/dev/null"]
ARG TARGETARCH
LABEL maintainer=Red Hat, Inc.
LABEL com.redhat.component=devfile-universal-container
LABEL name=devfile/universal-developer-image
LABEL version=ubi9
LABEL com.redhat.license_terms=https://www.redhat.com/en/about/red-hat-end-user-license-agreements#UBI
LABEL summary=devfile universal developer image
LABEL description=Image with developers tools. Languages SDK and runtimes included.
LABEL io.k8s.display-name=devfile-developer-universal
LABEL io.openshift.expose-services=
USER 0
ENV PROFILE_EXT=/etc/profile.d/udi_environment.sh
RUN |1 TARGETARCH=amd64 /bin/sh -c touch ${PROFILE_EXT} && chown 10001 ${PROFILE_EXT} # buildkit
USER 10001
ENV HOME=/home/tooling
RUN |1 TARGETARCH=amd64 /bin/sh -c curl -fsSL "https://get.sdkman.io/?rcupdate=false" | bash && bash -c ". /home/tooling/.sdkman/bin/sdkman-init.sh && sed -i "s/sdkman_auto_answer=false/sdkman_auto_answer=true/g" /home/tooling/.sdkman/etc/config && sed -i "s/sdkman_auto_env=false/sdkman_auto_env=true/g" /home/tooling/.sdkman/etc/config && sdk install java 8.0.432-tem && sdk install java 11.0.25-tem && sdk install java 17.0.13-tem && sdk install java 21.0.5-tem && sdk install java 23.1.5.r21-mandrel && sdk default java 17.0.13-tem && sdk install gradle && sdk install maven && sdk install jbang && sdk flush archives && sdk flush temp" && chgrp -R 0 /home/tooling && chmod -R g=u /home/tooling # buildkit
ENV JAVA_HOME_8=/home/tooling/.sdkman/candidates/java/8.0.432-tem
ENV JAVA_HOME_11=/home/tooling/.sdkman/candidates/java/11.0.25-tem
ENV JAVA_HOME_17=/home/tooling/.sdkman/candidates/java/17.0.13-tem
ENV JAVA_HOME_21=/home/tooling/.sdkman/candidates/java/21.0.5-tem
ENV SDKMAN_CANDIDATES_API=https://api.sdkman.io/2
ENV SDKMAN_CANDIDATES_DIR=/home/tooling/.sdkman/candidates
ENV SDKMAN_DIR=/home/tooling/.sdkman
RUN |1 TARGETARCH=amd64 /bin/sh -c if [ "$TARGETARCH" = "arm64" ]; then export SDKMAN_PLATFORM="linuxarm64"; else export SDKMAN_PLATFORM="linuxx64"; fi # buildkit
ENV SDKMAN_PLATFORM=
ENV SDKMAN_VERSION=5.18.2
ENV GRADLE_HOME=/home/tooling/.sdkman/candidates/gradle/current
ENV JAVA_HOME=/home/tooling/.sdkman/candidates/java/current
ENV MAVEN_HOME=/home/tooling/.sdkman/candidates/maven/current
ENV GRAALVM_HOME=/home/tooling/.sdkman/candidates/java/23.1.5.r21-mandrel
ENV PATH=/home/tooling/.krew/bin:/home/user/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ENV PATH=/home/tooling/.sdkman/candidates/maven/current/bin:/home/tooling/.krew/bin:/home/user/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ENV PATH=/home/tooling/.sdkman/candidates/java/current/bin:/home/tooling/.sdkman/candidates/maven/current/bin:/home/tooling/.krew/bin:/home/user/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ENV PATH=/home/tooling/.sdkman/candidates/gradle/current/bin:/home/tooling/.sdkman/candidates/java/current/bin:/home/tooling/.sdkman/candidates/maven/current/bin:/home/tooling/.krew/bin:/home/user/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ENV PATH=/home/tooling/.local/share/coursier/bin:/home/tooling/.sdkman/candidates/gradle/current/bin:/home/tooling/.sdkman/candidates/java/current/bin:/home/tooling/.sdkman/candidates/maven/current/bin:/home/tooling/.krew/bin:/home/user/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
RUN |1 TARGETARCH=amd64 /bin/sh -c mkdir -p /home/tooling/.nvm/ # buildkit
ENV NVM_DIR=/home/tooling/.nvm
ENV NODEJS_20_VERSION=20.18.1
ENV NODEJS_18_VERSION=18.20.5
ENV NODEJS_DEFAULT_VERSION=18.20.5
RUN |1 TARGETARCH=amd64 /bin/sh -c curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | PROFILE=/dev/null bash # buildkit
RUN |1 TARGETARCH=amd64 /bin/sh -c echo 'export NVM_DIR="$HOME/.nvm"' >> ${PROFILE_EXT} && echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"' >> ${PROFILE_EXT} # buildkit
RUN |1 TARGETARCH=amd64 /bin/sh -c source /home/user/.bashrc && nvm install v${NODEJS_20_VERSION} && nvm install v${NODEJS_18_VERSION} && nvm alias default v${NODEJS_DEFAULT_VERSION} && nvm use v${NODEJS_DEFAULT_VERSION} && npm install --global yarn@v1.22.22 && chgrp -R 0 /home/tooling && chmod -R g=u /home/tooling # buildkit
ENV PATH=/home/tooling/.nvm/versions/node/v18.20.5/bin:/home/tooling/.local/share/coursier/bin:/home/tooling/.sdkman/candidates/gradle/current/bin:/home/tooling/.sdkman/candidates/java/current/bin:/home/tooling/.sdkman/candidates/maven/current/bin:/home/tooling/.krew/bin:/home/user/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ENV NODEJS_HOME_20=/home/tooling/.nvm/versions/node/v20.18.1
ENV NODEJS_HOME_18=/home/tooling/.nvm/versions/node/v18.20.5
ENV KUBECONFIG=/home/user/.kube/config
USER 0
RUN |1 TARGETARCH=amd64 /bin/sh -c dnf install -y libXext libXrender libXtst libXi # buildkit
ENV LOMBOK_VERSION=1.18.18
RUN |1 TARGETARCH=amd64 /bin/sh -c wget -O /usr/local/lib/lombok.jar https://projectlombok.org/downloads/lombok-${LOMBOK_VERSION}.jar # buildkit
RUN |1 TARGETARCH=amd64 /bin/sh -c curl -fLo cs https://git.io/coursier-cli && chmod +x cs && mv cs /usr/local/bin/ # buildkit
RUN |1 TARGETARCH=amd64 /bin/sh -c curl -fLo sbt https://raw.githubusercontent.com/dwijnand/sbt-extras/master/sbt && chmod +x sbt && mv sbt /usr/local/bin/ # buildkit
RUN |1 TARGETARCH=amd64 /bin/sh -c curl -fLo mill https://raw.githubusercontent.com/lefou/millw/main/millw && chmod +x mill && mv mill /usr/local/bin/ # buildkit
RUN |1 TARGETARCH=amd64 /bin/sh -c dnf -y install llvm-toolset gcc gcc-c++ clang clang-libs clang-tools-extra gdb # buildkit
RUN |1 TARGETARCH=amd64 /bin/sh -c dnf install -y go-toolset && GO111MODULE=on go install -v golang.org/x/tools/gopls@v0.16.2 && chgrp -R 0 /home/tooling && chmod -R g=u /home/tooling # buildkit
ENV GOBIN=/home/tooling/go/bin/
ENV PATH=/home/tooling/go/bin/:/home/tooling/.nvm/versions/node/v18.20.5/bin:/home/tooling/.local/share/coursier/bin:/home/tooling/.sdkman/candidates/gradle/current/bin:/home/tooling/.sdkman/candidates/java/current/bin:/home/tooling/.sdkman/candidates/maven/current/bin:/home/tooling/.krew/bin:/home/user/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
RUN |1 TARGETARCH=amd64 /bin/sh -c dnf -y install python3.11 python3.11-devel python3.11-setuptools python3.11-pip nss_wrapper # buildkit
RUN |1 TARGETARCH=amd64 /bin/sh -c cd /usr/bin && if [ ! -L python ]; then ln -s python3.11 python; fi && if [ ! -L pydoc ]; then ln -s pydoc3.11 pydoc; fi && if [ ! -L python-config ]; then ln -s python3.11-config python-config; fi && if [ ! -L pip ]; then ln -s pip-3.11 pip; fi # buildkit
RUN |1 TARGETARCH=amd64 /bin/sh -c pip install pylint yq # buildkit
ENV PHP_VERSION=8.2
RUN |1 TARGETARCH=amd64 /bin/sh -c dnf -y module enable php:$PHP_VERSION && dnf install -y --setopt=tsflags=nodocs php php-mysqlnd php-pgsql php-bcmath php-gd php-intl php-json php-ldap php-mbstring php-pdo php-pear php-zlib php-mysqli php-curl php-xml php-devel php-process php-soap php-opcache php-fpm ca-certificates php-gmp php-pecl-xdebug php-pecl-zip mod_ssl hostname && wget https://getcomposer.org/installer -O /tmp/composer-installer.php && php /tmp/composer-installer.php --filename=composer --install-dir=/usr/local/bin # buildkit
ENV PHP_DEFAULT_INCLUDE_PATH=/usr/share/pear PHP_SYSCONF_PATH=/etc PHP_HTTPD_CONF_FILE=php.conf HTTPD_MAIN_CONF_PATH=/etc/httpd/conf HTTPD_MAIN_CONF_D_PATH=/etc/httpd/conf.d HTTPD_MODULES_CONF_D_PATH=/etc/httpd/conf.modules.d HTTPD_VAR_RUN=/var/run/httpd HTTPD_DATA_PATH=/var/www HTTPD_DATA_ORIG_PATH=/var/www HTTPD_VAR_PATH=/var
ENV DOTNET_RPM_VERSION=8.0
RUN |1 TARGETARCH=amd64 /bin/sh -c dnf install -y dotnet-hostfxr-${DOTNET_RPM_VERSION} dotnet-runtime-${DOTNET_RPM_VERSION} dotnet-sdk-${DOTNET_RPM_VERSION} # buildkit
ENV CARGO_HOME=/home/tooling/.cargo RUSTUP_HOME=/home/tooling/.rustup PATH=/home/tooling/.cargo/bin:/home/tooling/go/bin/:/home/tooling/.nvm/versions/node/v18.20.5/bin:/home/tooling/.local/share/coursier/bin:/home/tooling/.sdkman/candidates/gradle/current/bin:/home/tooling/.sdkman/candidates/java/current/bin:/home/tooling/.sdkman/candidates/maven/current/bin:/home/tooling/.krew/bin:/home/user/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
RUN |1 TARGETARCH=amd64 /bin/sh -c curl --proto '=https' --tlsv1.2 -sSfo rustup https://sh.rustup.rs && chmod +x rustup && mv rustup /usr/bin/ && rustup -y --no-modify-path --profile minimal -c rust-src -c rust-analysis -c rls && chgrp -R 0 /home/tooling && chmod -R g=u /home/tooling # buildkit
ENV KAMEL_VERSION=2.2.0
RUN |1 TARGETARCH=amd64 /bin/sh -c curl -L https://github.com/apache/camel-k/releases/download/v${KAMEL_VERSION}/camel-k-client-${KAMEL_VERSION}-linux-${TARGETARCH}.tar.gz | tar -C /usr/local/bin -xz --no-same-owner && chmod +x /usr/local/bin/kamel # buildkit
RUN |1 TARGETARCH=amd64 /bin/sh -c mkdir -p /home/tooling/.m2 && mkdir -p /home/tooling/.gradle && mkdir -p /home/tooling/.config/pip && mkdir -p /home/tooling/.sbt/1.0 && mkdir -p /home/tooling/.cargo && mkdir -p /home/tooling/certs && mkdir -p /home/tooling/.composer && mkdir -p /home/tooling/.nuget && chgrp -R 0 /home/tooling && chmod -R g=u /home/tooling # buildkit
ENV OC_VERSION=4.15
RUN |1 TARGETARCH=amd64 /bin/sh -c if [ "$TARGETARCH" = "arm64" ]; then curl -L https://mirror.openshift.com/pub/openshift-v4/arm64/clients/ocp/stable-${OC_VERSION}/openshift-client-linux.tar.gz; else curl -L https://mirror.openshift.com/pub/openshift-v4/x86_64/clients/ocp/stable-${OC_VERSION}/openshift-client-linux.tar.gz; fi | tar -C /usr/local/bin -xz --no-same-owner && chmod +x /usr/local/bin/oc # buildkit
ENV TKN_VERSION=1.14.0
RUN |1 TARGETARCH=amd64 /bin/sh -c curl -L https://mirror.openshift.com/pub/openshift-v4/clients/pipelines/${TKN_VERSION}/tkn-linux-${TARGETARCH}.tar.gz | tar -C /usr/local/bin -xz --no-same-owner && chmod +x /usr/local/bin/tkn /usr/local/bin/opc /usr/local/bin/tkn-pac # buildkit
RUN |1 TARGETARCH=amd64 /bin/sh -c echo 'alias docker=podman' >> ${PROFILE_EXT} # buildkit
COPY containers.conf /etc/containers/containers.conf # buildkit
ENV K8S_VERSION=1.28
RUN |1 TARGETARCH=amd64 /bin/sh -c set -euf -o pipefail cat <<EOF2 > /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://pkgs.k8s.io/core:/stable:/v${K8S_VERSION}/rpm/ enabled=1 gpgcheck=1 gpgkey=https://pkgs.k8s.io/core:/stable:/v${K8S_VERSION}/rpm/repodata/repomd.xml.key EOF2 dnf install -y kubectl curl -sSL -o ~/.kubectl_aliases https://raw.githubusercontent.com/ahmetb/kubectl-alias/master/.kubectl_aliases echo '[ -f ~/.kubectl_aliases ] && source ~/.kubectl_aliases' >> ${PROFILE_EXT} # buildkit
RUN |1 TARGETARCH=amd64 /bin/sh -c dnf install -y xz set -euf -o pipefail TEMP_DIR="$(mktemp -d)" cd "${TEMP_DIR}" SHELL_CHECK_VERSION="0.8.0" if [ "$TARGETARCH" = "arm64" ]; then SHELL_CHECK_ARCH="aarch64" else SHELL_CHECK_ARCH="x86_64" fi SHELL_CHECK_TGZ="shellcheck-v${SHELL_CHECK_VERSION}.linux.${SHELL_CHECK_ARCH}.tar.xz" SHELL_CHECK_TGZ_URL="https://github.com/koalaman/shellcheck/releases/download/v${SHELL_CHECK_VERSION}/${SHELL_CHECK_TGZ}" curl -sSLO "${SHELL_CHECK_TGZ_URL}" tar -xv --no-same-owner -f "${SHELL_CHECK_TGZ}" mv "${TEMP_DIR}"/shellcheck-v${SHELL_CHECK_VERSION}/shellcheck /bin/shellcheck cd - rm -rf "${TEMP_DIR}" # buildkit
RUN |1 TARGETARCH=amd64 /bin/sh -c set -euf -o pipefail TEMP_DIR="$(mktemp -d)" cd "${TEMP_DIR}" KREW_VERSION="0.4.2" KREW_ARCH="linux_${TARGETARCH}" KREW_TGZ="krew-${KREW_ARCH}.tar.gz" KREW_TGZ_URL="https://github.com/kubernetes-sigs/krew/releases/download/v${KREW_VERSION}/${KREW_TGZ}" curl -sSLO "${KREW_TGZ_URL}" curl -sSLO "${KREW_TGZ_URL}.sha256" # File ${KREW_TGZ_URL}.sha256 has invalid format to be checked with sha256sum. # It needs to create a valid one. echo "$(cat ${KREW_TGZ}.sha256) ${KREW_TGZ}" > "${KREW_TGZ}.sha256" sha256sum -c "${KREW_TGZ}.sha256" 2>&1 | grep OK tar -zxv --no-same-owner -f "${KREW_TGZ}" ./"krew-${KREW_ARCH}" install krew echo 'export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH"' >> ${PROFILE_EXT} export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH" # kubens and kubectx kubectl krew install ns kubectl krew install ctx cd - rm -rf "${TEMP_DIR}" # buildkit
RUN |1 TARGETARCH=amd64 /bin/sh -c set -euf -o pipefail TEMP_DIR="$(mktemp -d)" cd "${TEMP_DIR}" HELM_VERSION="3.14.3" HELM_ARCH="linux-${TARGETARCH}" HELM_TGZ="helm-v${HELM_VERSION}-${HELM_ARCH}.tar.gz" HELM_TGZ_URL="https://get.helm.sh/${HELM_TGZ}" curl -sSLO "${HELM_TGZ_URL}" curl -sSLO "${HELM_TGZ_URL}.sha256sum" sha256sum -c "${HELM_TGZ}.sha256sum" 2>&1 | grep OK tar -zxv --no-same-owner -f "${HELM_TGZ}" mv "${HELM_ARCH}"/helm /usr/local/bin/helm cd - rm -rf "${TEMP_DIR}" # buildkit
RUN |1 TARGETARCH=amd64 /bin/sh -c set -euf -o pipefail TEMP_DIR="$(mktemp -d)" cd "${TEMP_DIR}" KUSTOMIZE_VERSION="5.3.0" KUSTOMIZE_ARCH="linux_${TARGETARCH}" KUSTOMIZE_TGZ="kustomize_v${KUSTOMIZE_VERSION}_${KUSTOMIZE_ARCH}.tar.gz" KUSTOMIZE_TGZ_URL="https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize%2Fv${KUSTOMIZE_VERSION}/${KUSTOMIZE_TGZ}" KUSTOMIZE_CHEKSUMS_URL="https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize%2Fv${KUSTOMIZE_VERSION}/checksums.txt" curl -sSLO "${KUSTOMIZE_TGZ_URL}" curl -sSLO "${KUSTOMIZE_CHEKSUMS_URL}" sha256sum --ignore-missing -c "checksums.txt" 2>&1 | grep OK tar -zxv --no-same-owner -f "${KUSTOMIZE_TGZ}" mv kustomize /usr/local/bin/ cd - rm -rf "${TEMP_DIR}" # buildkit
RUN |1 TARGETARCH=amd64 /bin/sh -c set -euf -o pipefail TEMP_DIR="$(mktemp -d)" cd "${TEMP_DIR}" TKN_VERSION="0.20.0" if [ "$TARGETARCH" = "arm64" ]; then TKN_ARCH="Linux_arm64" else TKN_ARCH="Linux_x86_64" fi TKN_TGZ="tkn_${TKN_VERSION}_${TKN_ARCH}.tar.gz" TKN_TGZ_URL="https://github.com/tektoncd/cli/releases/download/v${TKN_VERSION}/${TKN_TGZ}" TKN_CHEKSUMS_URL="https://github.com/tektoncd/cli/releases/download/v${TKN_VERSION}/checksums.txt" curl -sSLO "${TKN_TGZ_URL}" curl -sSLO "${TKN_CHEKSUMS_URL}" sha256sum --ignore-missing -c "checksums.txt" 2>&1 | grep OK tar -zxv --no-same-owner -f "${TKN_TGZ}" mv tkn /usr/local/bin/ cd - rm -rf "${TEMP_DIR}" # buildkit
RUN |1 TARGETARCH=amd64 /bin/sh -c set -euf -o pipefail TEMP_DIR="$(mktemp -d)" cd "${TEMP_DIR}" KN_VERSION="1.13.0" KN_ARCH="linux-${TARGETARCH}" KN_BIN="kn-${KN_ARCH}" KN_BIN_URL="https://github.com/knative/client/releases/download/knative-v${KN_VERSION}/${KN_BIN}" KN_CHEKSUMS_URL="https://github.com/knative/client/releases/download/knative-v${KN_VERSION}/checksums.txt" curl -sSLO "${KN_BIN_URL}" curl -sSLO "${KN_CHEKSUMS_URL}" sha256sum --ignore-missing -c "checksums.txt" 2>&1 | grep OK mv "${KN_BIN}" kn chmod +x kn mv kn /usr/local/bin cd - rm -rf "${TEMP_DIR}" # buildkit
RUN |1 TARGETARCH=amd64 /bin/sh -c set -euf -o pipefail TEMP_DIR="$(mktemp -d)" cd "${TEMP_DIR}" TF_VERSION="1.7.5" TF_ARCH="linux_${TARGETARCH}" TF_ZIP="terraform_${TF_VERSION}_${TF_ARCH}.zip" TF_ZIP_URL="https://releases.hashicorp.com/terraform/${TF_VERSION}/${TF_ZIP}" TF_CHEKSUMS_URL="https://releases.hashicorp.com/terraform/${TF_VERSION}/terraform_${TF_VERSION}_SHA256SUMS" curl -sSLO "${TF_ZIP_URL}" curl -sSLO "${TF_CHEKSUMS_URL}" sha256sum --ignore-missing -c "terraform_${TF_VERSION}_SHA256SUMS" 2>&1 | grep OK unzip ${TF_ZIP} chmod +x terraform mv terraform /usr/local/bin cd - rm -rf "${TEMP_DIR}" # buildkit
RUN |1 TARGETARCH=amd64 /bin/sh -c curl -Lo skaffold https://storage.googleapis.com/skaffold/releases/latest/skaffold-linux-${TARGETARCH} && install skaffold /usr/local/bin/ # buildkit
RUN |1 TARGETARCH=amd64 /bin/sh -c set -euf -o pipefail TEMP_DIR="$(mktemp -d)" cd "${TEMP_DIR}" E2FSPROGS_VERSION="1.46.5" E2FSPROGS_TGZ="e2fsprogs-${E2FSPROGS_VERSION}.tar.gz" E2FSPROGS_TGZ_URL="https://mirrors.edge.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/v${E2FSPROGS_VERSION}/${E2FSPROGS_TGZ}" E2FSPROGS_CHEKSUMS_URL="https://mirrors.edge.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/v${E2FSPROGS_VERSION}/sha256sums.asc" curl -sSLO "${E2FSPROGS_TGZ_URL}" curl -sSLO "${E2FSPROGS_CHEKSUMS_URL}" sha256sum --ignore-missing -c "sha256sums.asc" 2>&1 | grep OK tar -zxv --no-same-owner -f "${E2FSPROGS_TGZ}" cd "e2fsprogs-${E2FSPROGS_VERSION}" mkdir build cd build ../configure --prefix=/usr --with-root-prefix="" --enable-elf-shlibs --disable-evms make make install make install-libs cd - rm -rf "${TEMP_DIR}" # buildkit
RUN |1 TARGETARCH=amd64 /bin/sh -c dnf -y install bash-completion && dnf clean all && rm -rf /var/cache/yum # buildkit
RUN |1 TARGETARCH=amd64 /bin/sh -c oc completion bash > /usr/share/bash-completion/completions/oc tkn completion bash > /usr/share/bash-completion/completions/tkn kubectl completion bash > /usr/share/bash-completion/completions/kubectl cat ${NVM_DIR}/bash_completion > /usr/share/bash-completion/completions/nvm # buildkit
RUN |1 TARGETARCH=amd64 /bin/sh -c echo 'export SDKMAN_DIR="/home/tooling/.sdkman"' >> ${PROFILE_EXT} # buildkit
RUN |1 TARGETARCH=amd64 /bin/sh -c echo '[[ -s "$SDKMAN_DIR/bin/sdkman-init.sh" ]] && source "$SDKMAN_DIR/bin/sdkman-init.sh"' >> ${PROFILE_EXT} # buildkit
RUN |1 TARGETARCH=amd64 /bin/sh -c stow . -t /home/user/ -d /home/tooling/ --no-folding # buildkit
RUN |1 TARGETARCH=amd64 /bin/sh -c chgrp -R 0 /home && chmod -R g=u /etc/passwd /etc/group /home /etc/pki # buildkit
RUN |1 TARGETARCH=amd64 /bin/sh -c dnf -y clean all --enablerepo='*' # buildkit
USER 10001
ENV HOME=/home/user

Labels

Key Value
architecture x86_64
build-date 2025-05-14T10:40:37
com.redhat.component devfile-universal-container
com.redhat.license_terms https://www.redhat.com/en/about/red-hat-end-user-license-agreements#UBI
description Image with developers tools. Languages SDK and runtimes included.
distribution-scope public
io.buildah.version 1.39.0-dev
io.k8s.description The Universal Base Image is designed and engineered to be the base layer for all of your containerized applications, middleware and utilities. This base image is freely redistributable, but Red Hat only supports Red Hat technologies through subscriptions for Red Hat products. This image is maintained by Red Hat and updated regularly.
io.k8s.display-name devfile-developer-universal
io.openshift.expose-services
io.openshift.tags base rhel9
maintainer Red Hat, Inc.
name devfile/universal-developer-image
release 1747219013
summary devfile universal developer image
url https://www.redhat.com
vcs-ref 2f42d95842ada13f4b1358571e36e1ab62406115
vcs-type git
vendor Red Hat, Inc.
version ubi9
Details
Container
2025-07-21 20:32:04 +00:00
1
OCI / Docker
linux/amd64
3.0 GiB
Versions (1) View all
ubi9 2025-07-21