act-runner (sha256:b5bbe2484437d138175c152f1ad00d7a08d7cfde2b3017053173773e7a711c4c)

Published 2026-05-11 18:55:04 +01:00 by tom in tom/act-runner

Installation

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

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=rolling
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=rolling 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=rolling 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=rolling 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=26
RUN |4 UBUNTU_TAG=rolling UBUNTU_VERSION=26.04 TARGETARCH=amd64 NODE_VERSION=26 /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=rolling UBUNTU_VERSION=26.04 TARGETARCH=amd64 NODE_VERSION=26 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=rolling UBUNTU_VERSION=26.04 TARGETARCH=amd64 NODE_VERSION=26 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=rolling UBUNTU_VERSION=26.04 TARGETARCH=amd64 NODE_VERSION=26 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=rolling UBUNTU_VERSION=26.04 TARGETARCH=amd64 NODE_VERSION=26 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=rolling UBUNTU_VERSION=26.04 TARGETARCH=amd64 NODE_VERSION=26 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=rolling UBUNTU_VERSION=26.04 TARGETARCH=amd64 NODE_VERSION=26 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

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-11 18:55:04 +01:00
22
OCI / Docker
linux/amd64
Tom Foster
MIT
1.1 GiB
Versions (28) View all