act-runner (sha256:c2b141b7bf475bd1c27267c47a683689ab4ce4657591c2712e4d6ca3e2d17a2a)

Published 2026-05-12 11:58:59 +01:00 by tom in tom/act-runner

Installation

docker pull git.tomfos.tr/tom/act-runner@sha256:c2b141b7bf475bd1c27267c47a683689ab4ce4657591c2712e4d6ca3e2d17a2a
sha256:c2b141b7bf475bd1c27267c47a683689ab4ce4657591c2712e4d6ca3e2d17a2a

About this package

Optimized ACT/Forgejo runner with essential CI tools for Ubuntu 26.04

Image layers

umoci raw add-layer --image /home/buildd/rockcraft-ubuntu-5691f940e215a35dc9b91fc1887cae39/images/ubuntu:rockcraft-base /home/buildd/rockcraft-ubuntu-5691f940e215a35dc9b91fc1887cae39/images/.temp_layer.4415.tar --tag 26.04
umoci config --image /home/buildd/rockcraft-ubuntu-5691f940e215a35dc9b91fc1887cae39/images/ubuntu:26.04 --clear=config.entrypoint --clear=config.cmd
umoci config --image /home/buildd/rockcraft-ubuntu-5691f940e215a35dc9b91fc1887cae39/images/ubuntu:26.04 --clear=config.cmd --config.cmd /bin/bash
umoci config --image /home/buildd/rockcraft-ubuntu-5691f940e215a35dc9b91fc1887cae39/images/ubuntu:26.04 --config.env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
umoci config --image /home/buildd/rockcraft-ubuntu-5691f940e215a35dc9b91fc1887cae39/images/ubuntu:26.04 --clear=config.labels --config.label org.opencontainers.image.version=26.04 --config.label org.opencontainers.image.title=ubuntu --config.label org.opencontainers.image.created=2026-04-21T17:23:54.324551+00:00 --config.label org.opencontainers.image.description=The Ubuntu container image maintained by Canonical Ubuntu is a Debian-based Linux operating system that runs from the desktop to the cloud, to all your internet connected things. It is the world's most popular operating system across public clouds and OpenStack clouds. It is the number one platform for containers; from Docker to Kubernetes to LXD, Ubuntu can run your containers at scale. Fast, secure and simple, Ubuntu powers millions of PCs worldwide.
umoci config --image /home/buildd/rockcraft-ubuntu-5691f940e215a35dc9b91fc1887cae39/images/ubuntu:26.04 --clear=manifest.annotations --manifest.annotation org.opencontainers.image.version=26.04 --manifest.annotation org.opencontainers.image.title=ubuntu --manifest.annotation org.opencontainers.image.created=2026-04-21T17:23:54.324551+00:00 --manifest.annotation org.opencontainers.image.description=The Ubuntu container image maintained by Canonical Ubuntu is a Debian-based Linux operating system that runs from the desktop to the cloud, to all your internet connected things. It is the world's most popular operating system across public clouds and OpenStack clouds. It is the number one platform for containers; from Docker to Kubernetes to LXD, Ubuntu can run your containers at scale. Fast, secure and simple, Ubuntu powers millions of PCs worldwide.
umoci raw add-layer --image /home/buildd/rockcraft-ubuntu-5691f940e215a35dc9b91fc1887cae39/images/ubuntu:26.04 /home/buildd/rockcraft-ubuntu-5691f940e215a35dc9b91fc1887cae39/images/.temp_layer.control_data.4415.tar
ARG UBUNTU_TAG=latest
ARG UBUNTU_VERSION=26.04
ARG TARGETARCH=amd64
SHELL [/bin/bash -e -c]
ENV DEBIAN_FRONTEND=noninteractive
LABEL org.opencontainers.image.title=act-runner-ubuntu26.04 org.opencontainers.image.description=Optimized ACT/Forgejo runner with essential CI tools for Ubuntu 26.04 org.opencontainers.image.url=https://git.tomfos.tr/tom/act-runner org.opencontainers.image.source=https://git.tomfos.tr/tom/act-runner org.opencontainers.image.documentation=https://git.tomfos.tr/tom/act-runner/src/branch/main/README.md org.opencontainers.image.vendor=git.tomfos.tr org.opencontainers.image.licenses=MIT org.opencontainers.image.authors=Tom Foster
RUN |3 UBUNTU_TAG=latest UBUNTU_VERSION=26.04 TARGETARCH=amd64 /bin/bash -e -c rm -f /etc/apt/apt.conf.d/docker-clean && echo 'APT::Sandbox::User "root";' > /etc/apt/apt.conf.d/00docker-buildkit && echo 'Dpkg::Use-Pty "0";' >> /etc/apt/apt.conf.d/00docker-buildkit && apt-get -qq update && apt-get -qq install -y --no-install-recommends apt-utils build-essential bzip2 cmake curl file g++ gcc gzip jq libffi-dev make patch pkg-config rsync tar unzip wget xz-utils zip && apt-get clean # buildkit
RUN |3 UBUNTU_TAG=latest UBUNTU_VERSION=26.04 TARGETARCH=amd64 /bin/bash -e -c apt-get -qq update && apt-get -qq install -y --no-install-recommends ca-certificates git git-lfs gnupg gpg libcairo2 libssl-dev lsb-release openssh-client python3 python3-apt python3-setuptools python3-software-properties python3-venv software-properties-common sudo && apt-get clean && update-alternatives --install /usr/bin/python python /usr/bin/python3 100 # buildkit
RUN |3 UBUNTU_TAG=latest UBUNTU_VERSION=26.04 TARGETARCH=amd64 /bin/bash -e -c apt-get -qq update && apt-get -qq install -y --no-install-recommends docker.io && apt-get clean && mkdir -p -m 755 /opt/hostedtoolcache # buildkit
ENV AGENT_TOOLSDIRECTORY=/opt/hostedtoolcache UV_LINK_MODE=copy UV_NO_PROGRESS=true PATH=/root/.local/bin:/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ARG NODE_VERSION=24
RUN |4 UBUNTU_TAG=latest UBUNTU_VERSION=26.04 TARGETARCH=amd64 NODE_VERSION=24 /bin/bash -e -c NODE_URL="https://nodejs.org/dist/latest-v${NODE_VERSION}.x/" && FULL_NODE_VERSION=$(curl -sL ${NODE_URL} | grep -oP 'node-v\K[0-9]+\.[0-9]+\.[0-9]+' | head -1) && FULL_VERSION="v${FULL_NODE_VERSION}" && ARCH=$(dpkg --print-architecture | sed 's/amd64/x64/;s/ppc64el/ppc64le/') && TARBALL="/tmp/downloads/node-${FULL_VERSION}-linux-${ARCH}.tar.xz" && if [ ! -f "${TARBALL}" ] || ! xz -t "${TARBALL}" 2>/dev/null; then echo "Downloading Node.js ${FULL_VERSION} for ${ARCH}..." && rm -f "${TARBALL}" && curl -fSL "${NODE_URL}/node-${FULL_VERSION}-linux-${ARCH}.tar.xz" -o "${TARBALL}" || (echo "Failed to download Node.js ${FULL_VERSION} for ${ARCH}" && exit 1) && xz -t "${TARBALL}" || (echo "Downloaded file is corrupted" && rm -f "${TARBALL}" && exit 1); fi && NODE_PATH="/opt/hostedtoolcache/node/${FULL_NODE_VERSION}/${ARCH}" && mkdir -p "${NODE_PATH}" && echo "Extracting Node.js ${FULL_VERSION} to ${NODE_PATH}..." && tar -xJf "${TARBALL}" --strip-components=1 -C "${NODE_PATH}" && echo "export PATH=${NODE_PATH}/bin:\$PATH" >> /etc/profile.d/node.sh && ln -sf ${NODE_PATH}/bin/node /usr/local/bin/node && ln -sf ${NODE_PATH}/bin/npm /usr/local/bin/npm && ln -sf ${NODE_PATH}/bin/npx /usr/local/bin/npx # buildkit
ARG GO_VERSION=1.26.3
RUN |5 UBUNTU_TAG=latest UBUNTU_VERSION=26.04 TARGETARCH=amd64 NODE_VERSION=24 GO_VERSION=1.26.3 /bin/bash -e -c ARCH=$(dpkg --print-architecture) && case "$ARCH" in ppc64el) ARCH=ppc64le ;; esac && TARBALL="/tmp/downloads/go${GO_VERSION}.linux-${ARCH}.tar.gz" && if [ ! -f "${TARBALL}" ] || ! gzip -t "${TARBALL}" 2>/dev/null; then echo "Downloading Go ${GO_VERSION} for ${ARCH}..." && rm -f "${TARBALL}" && curl -fSL "https://go.dev/dl/go${GO_VERSION}.linux-${ARCH}.tar.gz" -o "${TARBALL}" || (echo "Failed to download Go ${GO_VERSION} for ${ARCH}" && exit 1) && gzip -t "${TARBALL}" || (echo "Downloaded file is corrupted" && rm -f "${TARBALL}" && exit 1); fi && echo "Extracting Go ${GO_VERSION}..." && tar -xzf "${TARBALL}" -C /usr/local && ln -sf /usr/local/go/bin/* /usr/local/bin/ # buildkit
RUN |5 UBUNTU_TAG=latest UBUNTU_VERSION=26.04 TARGETARCH=amd64 NODE_VERSION=24 GO_VERSION=1.26.3 /bin/bash -e -c apt-get -qq update && apt-get -qq install -y --no-install-recommends default-jdk gradle && apt-get clean && JAVA_HOME=$(dirname $(dirname $(readlink -f $(which javac)))) && echo "export JAVA_HOME=${JAVA_HOME}" > /etc/profile.d/java.sh && echo "JAVA_HOME=${JAVA_HOME}" >> /etc/environment # buildkit
RUN |5 UBUNTU_TAG=latest UBUNTU_VERSION=26.04 TARGETARCH=amd64 NODE_VERSION=24 GO_VERSION=1.26.3 /bin/bash -e -c curl -LsSf https://astral.sh/uv/install.sh | sh && uv tool install prek && uv tool install ruff && uv tool install mypy && uv tool install pytest && uv tool install black && uv tool install isort && curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --no-modify-path --profile minimal --default-toolchain none && echo 'source $HOME/.cargo/env' >> /etc/bash.bashrc && . "$HOME/.cargo/env" && if [ "${UBUNTU_TAG}" = "rolling" ]; then rustup toolchain install nightly && rustup default nightly; else rustup toolchain install stable && rustup default stable; fi # buildkit
RUN |5 UBUNTU_TAG=latest UBUNTU_VERSION=26.04 TARGETARCH=amd64 NODE_VERSION=24 GO_VERSION=1.26.3 /bin/bash -e -c mkdir -p -m 755 /etc/apt/keyrings /etc/apt/sources.list.d && wget -q -O- https://cli.github.com/packages/githubcli-archive-keyring.gpg | gpg --dearmor -o /etc/apt/keyrings/githubcli-archive-keyring.gpg && echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" > /etc/apt/sources.list.d/github-cli.list && apt-get -qq update && if apt-cache show yq >/dev/null 2>&1; then apt-get -qq install -y --no-install-recommends gh yq; else apt-get -qq install -y --no-install-recommends gh && YQ_VERSION=$(curl -s https://api.github.com/repos/mikefarah/yq/releases/latest | grep -o '"tag_name": "v[^"]*"' | cut -d'"' -f4) && case "${TARGETARCH}" in amd64) YQ_ARCH="amd64" ;; arm64) YQ_ARCH="arm64" ;; ppc64le) YQ_ARCH="ppc64le" ;; s390x) YQ_ARCH="s390x" ;; *) echo "Unsupported architecture: ${TARGETARCH}" >&2; exit 1 ;; esac && curl -sL "https://github.com/mikefarah/yq/releases/download/${YQ_VERSION}/yq_linux_${YQ_ARCH}" -o /usr/local/bin/yq && chmod +x /usr/local/bin/yq; fi && apt-get clean # buildkit
ARG K8S_VERSION=1.36
RUN |6 UBUNTU_TAG=latest UBUNTU_VERSION=26.04 TARGETARCH=amd64 NODE_VERSION=24 GO_VERSION=1.26.3 K8S_VERSION=1.36 /bin/bash -e -c mkdir -p -m 755 /etc/apt/keyrings /etc/apt/sources.list.d && if [ "${UBUNTU_TAG}" != "rolling" ]; then add-apt-repository ppa:deadsnakes/ppa -y; fi && curl -fsSL https://pkgs.k8s.io/core:/stable:/v${K8S_VERSION}/deb/Release.key | gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg && echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v${K8S_VERSION}/deb/ /" > /etc/apt/sources.list.d/kubernetes.list && PACKAGE_PATH="/tmp/downloads/packages-microsoft-prod-$(lsb_release -rs).deb" && if [ ! -f "${PACKAGE_PATH}" ]; then wget -q https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/packages-microsoft-prod.deb -O "${PACKAGE_PATH}"; fi && dpkg -i "${PACKAGE_PATH}" && chmod 644 /etc/apt/keyrings/*.gpg 2>/dev/null || true && apt-get clean # buildkit
ENV BUILDKIT_PROGRESS=plain CI=true DOCKER_BUILDKIT=1
WORKDIR /tmp
RUN |6 UBUNTU_TAG=latest UBUNTU_VERSION=26.04 TARGETARCH=amd64 NODE_VERSION=24 GO_VERSION=1.26.3 K8S_VERSION=1.36 /bin/bash -e -c git --version && docker --version && gh --version && python3 --version && go version && java -version && gradle --version && (command -v rustup >/dev/null 2>&1 && rustup --version || echo "Rust not installed") && uv --version && (command -v node >/dev/null 2>&1 && node --version || echo "Node.js not installed") && (command -v npm >/dev/null 2>&1 && npm --version || echo "npm not installed") && apt-get -qq update # buildkit
ARG PYTHON_VERSION=3.15
ARG UBUNTU_VERSION=26.04
ARG TARGETARCH=amd64
RUN |3 PYTHON_VERSION=3.15 UBUNTU_VERSION=26.04 TARGETARCH=amd64 /bin/bash -e -c apt-get -qq update && DEBIAN_FRONTEND=noninteractive apt-get -qq install -y python${PYTHON_VERSION} python${PYTHON_VERSION}-venv && update-alternatives --install /usr/bin/python3 python3 /usr/bin/python${PYTHON_VERSION} 100 && update-alternatives --install /usr/bin/python python /usr/bin/python${PYTHON_VERSION} 100 && python -m ensurepip # buildkit
COPY /tmp/apt-install / # buildkit

Labels

Key Value
org.opencontainers.image.authors Tom Foster
org.opencontainers.image.created 2026-04-21T17:23:54.324551+00:00
org.opencontainers.image.description Optimized ACT/Forgejo runner with essential CI tools for Ubuntu 26.04
org.opencontainers.image.documentation https://git.tomfos.tr/tom/act-runner/src/branch/main/README.md
org.opencontainers.image.licenses MIT
org.opencontainers.image.source https://git.tomfos.tr/tom/act-runner
org.opencontainers.image.title act-runner-ubuntu26.04
org.opencontainers.image.url https://git.tomfos.tr/tom/act-runner
org.opencontainers.image.vendor git.tomfos.tr
org.opencontainers.image.version 26.04
Details
Container
2026-05-12 11:58:59 +01:00
9
OCI / Docker
linux/amd64
Tom Foster
MIT
1.1 GiB
Versions (28) View all