FROM debian:bookworm ARG KUBE_RELEASE=v1.30.2 ARG YQ_VERSION=v4.44.2 ARG NODE_VERSION=20.x ARG PNPM_VERSION=v9.5.0 ARG UBUNTU_CODENAME=jammy RUN set -eux; \ apt-get update; \ apt-get install -y --no-install-recommends \ ca-certificates \ curl \ git \ gpg \ openssh-client \ ; \ install -m 0755 -d /etc/apt/keyrings; \ curl -sSL "https://keyserver.ubuntu.com/pks/lookup?fingerprint=on&op=get&search=0x6125E2A8C77F2818FB7BD15B93C4A3FD7BB9C367" \ > /etc/apt/keyrings/ansible.asc \ ; \ echo \ "deb [signed-by=/etc/apt/keyrings/ansible.asc] \ http://ppa.launchpad.net/ansible/ansible/ubuntu \ $UBUNTU_CODENAME main" \ > /etc/apt/sources.list.d/ansible.list; \ curl -sSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc; \ chmod a+r /etc/apt/keyrings/docker.asc; \ echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] \ https://download.docker.com/linux/debian \ bookworm stable" \ > /etc/apt/sources.list.d/docker.list; \ apt-get update; \ apt-get install -y --no-install-recommends \ ansible \ docker-ce-cli \ docker-buildx-plugin \ docker-compose-plugin \ ; \ curl --silent --location "https://dl.k8s.io/release/$KUBE_RELEASE/bin/linux/amd64/kubectl" \ | install --owner=root --group=root --mode=0755 /dev/stdin /usr/local/bin/kubectl \ ; \ curl --silent --location "https://github.com/mikefarah/yq/releases/download/$YQ_VERSION/yq_linux_amd64.tar.gz" \ | tar --extract --gzip --to-stdout ./yq_linux_amd64 \ | install --owner=root --group=root --mode=0755 /dev/stdin /usr/local/bin/yq \ ; \ curl --silent --location "https://deb.nodesource.com/setup_$NODE_VERSION" | bash; \ apt-get install -y --no-install-recommends nodejs; \ corepack install --global pnpm@$PNPM_VERSION; \ corepack enable pnpm; \ rm -rf /var/lib/apt/lists/* # References: # - ansible: https://docs.ansible.com/ansible/latest/installation_guide/installation_distros.html#installing-ansible-on-debian # - docker: https://docs.docker.com/engine/install/debian/#install-from-a-package # - kubectl: https://kubectl.docs.kubernetes.io/installation/kubectl/binaries/ # - node: https://github.com/nodesource/distributions#installation-instructions-deb # - pnpm: https://nodejs.org/api/corepack.html#upgrading-the-global-versions # - yq: https://github.com/mikefarah/yq?tab=readme-ov-file#install