File Dockerfile of Package docker_build_env

#FROM urm.nvidia.com/sw-dgx-platform-docker-local/devops/ubuntu-22.04:latest

FROM docker.io/ubuntu:noble-20240801
# Supporting packages
RUN apt-get update && apt-get install -y \
    jq \
    curl \
    unzip \
    squashfs-tools \
    apt-transport-https \
    ca-certificates \
    gnupg \
    software-properties-common

# Install AWS
RUN curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" \
    && unzip awscliv2.zip \
    && ./aws/install

# Install Azure
RUN curl -sL https://aka.ms/InstallAzureCLIDeb | bash

# Install GCP
RUN echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" \
    | tee -a /etc/apt/sources.list.d/google-cloud-sdk.list \
    && curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key --keyring /usr/share/keyrings/cloud.google.gpg add - \
    && apt-get update \
    && apt-get install -y google-cloud-cli google-cloud-sdk-gke-gcloud-auth-plugin

# Install packer
RUN curl -fsSL https://apt.releases.hashicorp.com/gpg | apt-key add - \
    && echo "deb [arch=amd64] https://apt.releases.hashicorp.com $(cat /etc/os-release | grep VERSION_CODENAME | cut -d = -f 2) main" \
    | tee /etc/apt/sources.list.d/hashicorp.list \
    && apt-get update \
    && apt-get install -y packer

# Install packer plugins
# NOTE: If you change the versions here make sure you also change them in the respect csp directory
#       internal/{csp}/templates/packer/plugin.hcl
ENV PACKER_PLUGIN_PATH=/etc/packer/plugins
COPY install_packer_plugins.sh /etc/install_packer_plugins.sh
RUN mkdir -p ${PACKER_PLUGIN_PATH} \
    && /etc/install_packer_plugins.sh azure=2.0.2 amazon=1.2.9 googlecompute=1.1.4 oracle=1.0.5

# Install goss
ARG GOSS_VERSION="3.1.4"
RUN wget https://github.com/YaleUniversity/packer-provisioner-goss/releases/download/v${GOSS_VERSION}/packer-provisioner-goss-v${GOSS_VERSION}-linux-amd64.tar.gz \
    && tar -zxf packer-provisioner-goss-v${GOSS_VERSION}-linux-amd64.tar.gz \
    && chmod +x packer-provisioner-goss \
    && mv packer-provisioner-goss ${PACKER_PLUGIN_PATH}/ \
    && rm packer-provisioner-goss-v${GOSS_VERSION}-linux-amd64.tar.gz

# Install terraform
RUN wget -O- https://apt.releases.hashicorp.com/gpg \
    | gpg --dearmor \
    | tee /usr/share/keyrings/hashicorp-archive-keyring.gpg \
    && gpg --no-default-keyring \
    --keyring /usr/share/keyrings/hashicorp-archive-keyring.gpg \
    --fingerprint \
    && echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(. /etc/os-release && echo "$VERSION_CODENAME") main" \
    | sudo tee /etc/apt/sources.list.d/hashicorp.list \
    && apt update && apt-get install -y terraform

# Install docker -- actually dont it is already installed in upstream common container
# RUN install -m 0755 -d /etc/apt/keyrings \
#     && curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg  \
#     && chmod a+r /etc/apt/keyrings/docker.gpg \
#     && echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null \
#     && apt-get update \
#     && apt-get install -y docker-ce docker-ce-cli containerd.io

# Install helm
RUN wget https://get.helm.sh/helm-v3.12.3-linux-amd64.tar.gz \
    && tar -zxvf helm-v3.12.3-linux-amd64.tar.gz \
    && mv linux-amd64/helm /usr/local/bin/helm \
    && helm plugin install https://github.com/chartmuseum/helm-push

# Install kubectl
RUN curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" \
    && install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

openSUSE Build Service is sponsored by