FROM docker.io/ubuntu:24.04 ARG TARGETARCH RUN rm -rf /home/ubuntu RUN apt-get update && \ apt-get install -y --no-install-recommends \ apt-transport-https \ ca-certificates \ curl \ wget \ gnupg \ git # Fetch kubectl RUN curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/${TARGETARCH}/kubectl" && \ curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/${TARGETARCH}/kubectl.sha256" && \ echo "$(cat kubectl.sha256) kubectl" | sha256sum --check && \ install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl && \ rm kubectl kubectl.sha256 # Install kubecolor for some colour https://kubecolor.github.io/ RUN wget -O /tmp/kubecolor.deb https://kubecolor.github.io/packages/deb/pool/main/k/kubecolor/kubecolor_$(wget -q -O- https://kubecolor.github.io/packages/deb/version)_$(dpkg --print-architecture).deb && \ dpkg -i /tmp/kubecolor.deb && \ apt update && \ rm /tmp/kubecolor.deb RUN adduser homelab USER homelab # Install krew, a plugin manager for kubectl https://krew.sigs.k8s.io/ RUN (set -x; cd "$(mktemp -d)" && \ KREW="krew-linux_${TARGETARCH}" && \ curl -fsSLO "https://github.com/kubernetes-sigs/krew/releases/latest/download/${KREW}.tar.gz" && \ tar zxvf "${KREW}.tar.gz" && \ ./"${KREW}" install krew ) && \ echo "export PATH=\"${KREW_ROOT:-$HOME/.krew}/bin:$PATH\"" >> ${HOME}/.bashrc RUN PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH" kubectl krew install ctx ns oidc-login RUN echo "alias k='kubectl'" >> ${HOME}/.bash_aliases && \ echo "alias kubectl='kubecolor'" >> ${HOME}/.bash_aliases && \ echo "alias tf='tofu'" >> ${HOME}/.bash_aliases USER root