| # debian.sh --arch 'amd64' out/ 'bookworm' '@1787529600' |
| ENV PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin |
| ENV LANG=C.UTF-8 |
| RUN /bin/sh -c set -eux; apt-get update; apt-get install -y --no-install-recommends ca-certificates netbase tzdata ; rm -rf /var/lib/apt/lists/* # buildkit |
| ENV GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305 |
| ENV PYTHON_VERSION=3.12.14 |
| ENV PYTHON_SHA256=5c8462af5790baf43a321a1559dbe0db06d1be4300fb85fb53c40060668e548a |
| RUN /bin/sh -c set -eux; savedAptMark="$(apt-mark showmanual)"; apt-get update; apt-get install -y --no-install-recommends dpkg-dev g++ gcc gnupg libbluetooth-dev libbz2-dev libc6-dev libdb-dev libffi-dev libgdbm-dev liblzma-dev libncursesw5-dev libreadline-dev libsqlite3-dev libssl-dev make tk-dev uuid-dev wget xz-utils zlib1g-dev ; wget -O python.tar.xz "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz"; echo "$PYTHON_SHA256 *python.tar.xz" | sha256sum -c -; wget -O python.tar.xz.asc "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz.asc"; GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$GPG_KEY"; gpg --batch --verify python.tar.xz.asc python.tar.xz; gpgconf --kill all; rm -rf "$GNUPGHOME" python.tar.xz.asc; mkdir -p /usr/src/python; tar --extract --directory /usr/src/python --strip-components=1 --file python.tar.xz; rm python.tar.xz; cd /usr/src/python; gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; ./configure --build="$gnuArch" --enable-loadable-sqlite-extensions --enable-optimizations --enable-option-checking=fatal --enable-shared $(test "${gnuArch%%-*}" != 'riscv64' && echo '--with-lto') --with-ensurepip ; nproc="$(nproc)"; EXTRA_CFLAGS="$(dpkg-buildflags --get CFLAGS)"; LDFLAGS="$(dpkg-buildflags --get LDFLAGS)"; LDFLAGS="${LDFLAGS:-} -Wl,--strip-all"; arch="$(dpkg --print-architecture)"; arch="${arch##*-}"; case "$arch" in amd64|arm64) EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"; ;; i386) ;; *) EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer"; ;; esac; make -j "$nproc" "EXTRA_CFLAGS=${EXTRA_CFLAGS:-}" "LDFLAGS=${LDFLAGS:-}" ; rm python; make -j "$nproc" "EXTRA_CFLAGS=${EXTRA_CFLAGS:-}" "LDFLAGS=${LDFLAGS:-} -Wl,-rpath='\$\$ORIGIN/../lib'" python ; make install; cd /; rm -rf /usr/src/python; find /usr/local -depth \( \( -type d -a \( -name test -o -name tests -o -name idle_test \) \) -o \( -type f -a \( -name '*.pyc' -o -name '*.pyo' -o -name 'libpython*.a' \) \) \) -exec rm -rf '{}' + ; ldconfig; apt-mark auto '.*' > /dev/null; apt-mark manual $savedAptMark; find /usr/local -type f -executable -not \( -name '*tkinter*' \) -exec ldd '{}' ';' | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); printf "*%s\n", so }' | sort -u | xargs -rt dpkg-query --search | awk 'sub(":$", "", $1) { print $1 }' | sort -u | xargs -r apt-mark manual ; apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; rm -rf /var/lib/apt/lists/*; export PYTHONDONTWRITEBYTECODE=1; python3 --version; pip3 --version # buildkit |
| RUN /bin/sh -c set -eux; for src in idle3 pip3 pydoc3 python3 python3-config; do dst="$(echo "$src" | tr -d 3)"; [ -s "/usr/local/bin/$src" ]; [ ! -e "/usr/local/bin/$dst" ]; ln -svT "$src" "/usr/local/bin/$dst"; done # buildkit |
| CMD ["python3"] |
| ARG TOFU_VERSION=1.9.0 |
| ARG KUBECTL_VERSION=v1.32.0 |
| ARG ANSIBLE_CORE_VERSION=2.18.1 |
| ARG TARGETARCH=amd64 |
| ENV DEBIAN_FRONTEND=noninteractive PIP_NO_CACHE_DIR=1 PYTHONDONTWRITEBYTECODE=1 PYTHONUNBUFFERED=1 |
| |4 ANSIBLE_CORE_VERSION=2.18.1 KUBECTL_VERSION=v1.32.0 TARGETARCH=amd64 TOFU_VERSION=1.9.0 /bin/sh -c apt-get update && apt-get install -y --no-install-recommends ca-certificates curl unzip git && rm -rf /var/lib/apt/lists/* |
| |4 ANSIBLE_CORE_VERSION=2.18.1 KUBECTL_VERSION=v1.32.0 TARGETARCH=amd64 TOFU_VERSION=1.9.0 /bin/sh -c curl -fsSL -o /tmp/tofu.zip "https://github.com/opentofu/opentofu/releases/download/v${TOFU_VERSION}/tofu_${TOFU_VERSION}_linux_${TARGETARCH}.zip" && unzip -q /tmp/tofu.zip tofu -d /usr/local/bin && chmod +x /usr/local/bin/tofu && rm /tmp/tofu.zip && tofu version |
| |4 ANSIBLE_CORE_VERSION=2.18.1 KUBECTL_VERSION=v1.32.0 TARGETARCH=amd64 TOFU_VERSION=1.9.0 /bin/sh -c curl -fsSL -o /usr/local/bin/kubectl "https://dl.k8s.io/release/${KUBECTL_VERSION}/bin/linux/${TARGETARCH}/kubectl" && chmod +x /usr/local/bin/kubectl && kubectl version --client=true |
| ENV ANSIBLE_COLLECTIONS_PATH=/usr/share/ansible/collections |
| |4 ANSIBLE_CORE_VERSION=2.18.1 KUBECTL_VERSION=v1.32.0 TARGETARCH=amd64 TOFU_VERSION=1.9.0 /bin/sh -c pip install --no-cache-dir "ansible-core==${ANSIBLE_CORE_VERSION}" && ansible-galaxy collection install -p /usr/share/ansible/collections community.general ansible.posix community.crypto && chmod -R a+rX /usr/share/ansible && ansible-doc -t module community.general.filesystem >/dev/null && ansible-doc -t module community.general.modprobe >/dev/null |
| ENV HOME=/tmp ANSIBLE_HOME=/tmp/.ansible ANSIBLE_LOCAL_TEMP=/tmp/.ansible/tmp |
| |4 ANSIBLE_CORE_VERSION=2.18.1 KUBECTL_VERSION=v1.32.0 TARGETARCH=amd64 TOFU_VERSION=1.9.0 /bin/sh -c mkdir -p /tmp/.ansible/tmp && chmod -R 1777 /tmp/.ansible |
| |4 ANSIBLE_CORE_VERSION=2.18.1 KUBECTL_VERSION=v1.32.0 TARGETARCH=amd64 TOFU_VERSION=1.9.0 /bin/sh -c mkdir -p /opt/tofu-mirror /tmp/seed && printf 'terraform {\n required_providers {\n proxmox = {\n source = "bpg/proxmox"\n }\n }\n}\n' > /tmp/seed/main.tf && (cd /tmp/seed && tofu providers mirror /opt/tofu-mirror) && chmod -R a+rX /opt/tofu-mirror && rm -rf /tmp/seed |
| |4 ANSIBLE_CORE_VERSION=2.18.1 KUBECTL_VERSION=v1.32.0 TARGETARCH=amd64 TOFU_VERSION=1.9.0 /bin/sh -c printf 'provider_installation {\n filesystem_mirror {\n path = "/opt/tofu-mirror"\n include = ["*/*"]\n }\n}\n' > /etc/tofu.tfrc && chmod a+r /etc/tofu.tfrc |
| ENV TF_CLI_CONFIG_FILE=/etc/tofu.tfrc |
| ARG KUBECONFORM_VERSION=0.6.7 |
| |5 ANSIBLE_CORE_VERSION=2.18.1 KUBECONFORM_VERSION=0.6.7 KUBECTL_VERSION=v1.32.0 TARGETARCH=amd64 TOFU_VERSION=1.9.0 /bin/sh -c curl -fsSL "https://github.com/yannh/kubeconform/releases/download/v${KUBECONFORM_VERSION}/kubeconform-linux-${TARGETARCH}.tar.gz" | tar -xz -C /usr/local/bin kubeconform && chmod +x /usr/local/bin/kubeconform && kubeconform -v |
| ARG K8S_SCHEMA_VERSION=v1.32.0 |
| ENV KUBECONFORM_SCHEMA_DIR=/opt/k8s-schemas |
| |6 ANSIBLE_CORE_VERSION=2.18.1 K8S_SCHEMA_VERSION=v1.32.0 KUBECONFORM_VERSION=0.6.7 KUBECTL_VERSION=v1.32.0 TARGETARCH=amd64 TOFU_VERSION=1.9.0 /bin/sh -c git clone --depth 1 --filter=blob:none --sparse https://github.com/yannh/kubernetes-json-schema.git /tmp/k8sjs && git -C /tmp/k8sjs sparse-checkout set "${K8S_SCHEMA_VERSION}-standalone-strict" && mkdir -p "$KUBECONFORM_SCHEMA_DIR" && cp /tmp/k8sjs/${K8S_SCHEMA_VERSION}-standalone-strict/*.json "$KUBECONFORM_SCHEMA_DIR"/ && rm -rf /tmp/k8sjs && chmod -R a+rX "$KUBECONFORM_SCHEMA_DIR" && echo "schemas: $(ls "$KUBECONFORM_SCHEMA_DIR" | wc -l) files, $(du -sh "$KUBECONFORM_SCHEMA_DIR" | cut -f1)" |
| ENV ANSIBLE_NOCOLOR=1 ANSIBLE_FORCE_COLOR=0 PY_COLORS=0 |
| WORKDIR /bench |
| ARG DOCKER_CLI_VERSION=27.3.1 |
| |7 ANSIBLE_CORE_VERSION=2.18.1 DOCKER_CLI_VERSION=27.3.1 K8S_SCHEMA_VERSION=v1.32.0 KUBECONFORM_VERSION=0.6.7 KUBECTL_VERSION=v1.32.0 TARGETARCH=amd64 TOFU_VERSION=1.9.0 /bin/sh -c curl -fsSL "https://download.docker.com/linux/static/stable/x86_64/docker-${DOCKER_CLI_VERSION}.tgz" | tar -xz -C /usr/local/bin --strip-components=1 docker/docker && chmod +x /usr/local/bin/docker && docker --version |
| COPY multi:0382e3a3c7da6fc05011dd8ca30512a4f68dc861eea675fb0201078c0cfb4e1c in /bench/ |
| COPY multi:e2f6708849dfd9f7cb947383560d98e90bab646d1d93be1e09f400326f3fca91 in /bench/ |
| COPY multi:fb19c4c85b3c92724580de3c6680c56e99c5d0facffd8e472e53c1e943608ac8 in /bench/ |
| COPY dir:36eefd34d85122953a19b2b227cc6f10007318830fbcd554a380bdda6bd44dcd in /bench/scenarios/ |
| COPY file:f54d9a8dfaa0290976bada9d1c983d93a47417a28429994dc5f7e214fa927123 in /bench/bin/kindctl |
| |7 ANSIBLE_CORE_VERSION=2.18.1 DOCKER_CLI_VERSION=27.3.1 K8S_SCHEMA_VERSION=v1.32.0 KUBECONFORM_VERSION=0.6.7 KUBECTL_VERSION=v1.32.0 TARGETARCH=amd64 TOFU_VERSION=1.9.0 /bin/sh -c mkdir -p /bench/results/transcripts |
| ARG FESTBENCH_SRC_DIGEST= |
| LABEL io.festbench.source-digest=1a405edb17f17b1a9162995e6ed58613756ad173fd9ed50f3d2947e061d69539 |
| COPY file:a05d95cc0cc95784e464943727fb5c1c15f58ed3dd267594746cfa3c7eac8240 in /usr/local/bin/entrypoint |
| |8 ANSIBLE_CORE_VERSION=2.18.1 DOCKER_CLI_VERSION=27.3.1 FESTBENCH_SRC_DIGEST=1a405edb17f17b1a9162995e6ed58613756ad173fd9ed50f3d2947e061d69539 K8S_SCHEMA_VERSION=v1.32.0 KUBECONFORM_VERSION=0.6.7 KUBECTL_VERSION=v1.32.0 TARGETARCH=amd64 TOFU_VERSION=1.9.0 /bin/sh -c chmod +x /usr/local/bin/entrypoint |
| ENV BENCH_DB=/results/benchmarks.db |
| VOLUME [/results] |
| ENTRYPOINT ["/usr/local/bin/entrypoint"] |
| CMD ["softbench" "infrabench" "prosebench" "psychbench"] |
| LABEL io.festbench.arch=amd64 |