act-runner (sha256:b5bbe2484437d138175c152f1ad00d7a08d7cfde2b3017053173773e7a711c4c)
Installation
docker pull git.tomfos.tr/tom/act-runner@sha256:b5bbe2484437d138175c152f1ad00d7a08d7cfde2b3017053173773e7a711c4csha256:b5bbe2484437d138175c152f1ad00d7a08d7cfde2b3017053173773e7a711c4cAbout 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
2026-05-11 18:55:04 +01:00
Versions (28)
View all
Container
22
OCI / Docker
linux/amd64
Tom Foster
MIT
1.1 GiB
debian-latest
2026-05-20
debian13-node24-py3.13
2026-05-20
ubuntu22.04-node22-py3.15
2026-05-20
ubuntu26.04-node24-py3.15
2026-05-20
debian-sid
2026-05-20