# Kubernetes Kind Container - Multi-Arch # Автор: Сергей Антропов # Сайт: https://devops.org.ru ARG TARGETARCH FROM ubuntu:22.04 # Обновляем систему RUN apt-get update && apt-get upgrade -y && apt-get clean # Устанавливаем базовые пакеты RUN apt-get install -y \ wget \ curl \ git \ vim \ bash \ ca-certificates \ python3 \ python3-yaml \ file \ apt-transport-https \ gnupg \ lsb-release \ && apt-get clean # Устанавливаем Docker CLI RUN DOCKER_VERSION=20.10.24 && \ if [ "${TARGETARCH}" = "amd64" ]; then \ wget -O /tmp/docker-cli.tgz "https://download.docker.com/linux/static/stable/x86_64/docker-${DOCKER_VERSION}.tgz" && \ tar -xz -C /tmp -f /tmp/docker-cli.tgz && \ mv /tmp/docker/docker /usr/local/bin/ && \ rm -rf /tmp/docker-cli.tgz /tmp/docker; \ else \ wget -O /tmp/docker-cli.tgz "https://download.docker.com/linux/static/stable/aarch64/docker-${DOCKER_VERSION}.tgz" && \ tar -xz -C /tmp -f /tmp/docker-cli.tgz && \ mv /tmp/docker/docker /usr/local/bin/ && \ rm -rf /tmp/docker-cli.tgz /tmp/docker; \ fi && \ chmod +x /usr/local/bin/docker # Устанавливаем kubectl RUN if [ "${TARGETARCH}" = "amd64" ]; then \ wget -O kubectl "https://dl.k8s.io/release/v1.34.1/bin/linux/amd64/kubectl"; \ else \ wget -O kubectl "https://dl.k8s.io/release/v1.34.1/bin/linux/arm64/kubectl"; \ fi && \ chmod +x kubectl && \ mv kubectl /usr/local/bin/ # Устанавливаем Helm RUN wget https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 -O - | bash # Устанавливаем Kind v0.30.0 RUN if [ "${TARGETARCH}" = "amd64" ]; then \ wget -O /usr/local/bin/kind "https://github.com/kubernetes-sigs/kind/releases/download/v0.30.0/kind-linux-amd64"; \ else \ wget -O /usr/local/bin/kind "https://github.com/kubernetes-sigs/kind/releases/download/v0.30.0/kind-linux-arm64"; \ fi && \ chmod +x /usr/local/bin/kind && \ ls -lh /usr/local/bin/kind && \ file /usr/local/bin/kind # Устанавливаем Istio CLI RUN ARCH=$(echo ${TARGETARCH} | sed 's/amd64/x86_64/; s/arm64/aarch64/') && \ ISTIO_VERSION=1.22.1 && \ wget -qO- https://istio.io/downloadIstio | ISTIO_VERSION=${ISTIO_VERSION} TARGET_ARCH=${ARCH} sh - && \ mv istio-${ISTIO_VERSION}/bin/istioctl /usr/local/bin/ && \ rm -rf istio-${ISTIO_VERSION} # Команда по умолчанию CMD ["sleep", "infinity"]