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