act-runner (sha256:a1481794d7a0b2c1963d77537d9b8a535035ead0d1043ffa8faaa98d70c08b5d)

Published 2025-10-29 04:10:03 +00:00 by tom in tom/act-runner

Installation

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

About this package

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

Image layers

ARG RELEASE
ARG LAUNCHPAD_BUILD_ARCH
LABEL org.opencontainers.image.ref.name=ubuntu
LABEL org.opencontainers.image.version=22.04
ADD file:32d41b6329e8f89fa4ac92ef97c04b7cfd5e90fb74e1509c3e27d7c91195b7c7 in /
CMD ["/bin/bash"]
ARG UBUNTU_TAG=jammy
ARG UBUNTU_VERSION=22.04
ARG TARGETARCH=amd64
SHELL [/bin/bash -e -c]
ENV DEBIAN_FRONTEND=noninteractive PYTHONDONTWRITEBYTECODE=1
LABEL org.opencontainers.image.title=act-runner-ubuntu22.04 org.opencontainers.image.description=Optimized ACT/Forgejo runner with essential CI tools for Ubuntu 22.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=jammy UBUNTU_VERSION=22.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=jammy UBUNTU_VERSION=22.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=jammy UBUNTU_VERSION=22.04 TARGETARCH=amd64 /bin/bash -e -c apt-get -qq update && apt-get -qq install -y --no-install-recommends docker-compose 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=22
RUN |4 UBUNTU_TAG=jammy UBUNTU_VERSION=22.04 TARGETARCH=amd64 NODE_VERSION=22 /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.25.3
RUN |5 UBUNTU_TAG=jammy UBUNTU_VERSION=22.04 TARGETARCH=amd64 NODE_VERSION=22 GO_VERSION=1.25.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=jammy UBUNTU_VERSION=22.04 TARGETARCH=amd64 NODE_VERSION=22 GO_VERSION=1.25.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=jammy UBUNTU_VERSION=22.04 TARGETARCH=amd64 NODE_VERSION=22 GO_VERSION=1.25.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.34
RUN |6 UBUNTU_TAG=jammy UBUNTU_VERSION=22.04 TARGETARCH=amd64 NODE_VERSION=22 GO_VERSION=1.25.3 K8S_VERSION=1.34 /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 && if [ "${UBUNTU_TAG}" != "rolling" ]; then CODENAME=$(lsb_release -cs) && wget -qO- https://apt.llvm.org/llvm-snapshot.gpg.key | gpg --dearmor -o /etc/apt/keyrings/llvm-archive-keyring.gpg && echo "deb [signed-by=/etc/apt/keyrings/llvm-archive-keyring.gpg] https://apt.llvm.org/${CODENAME}/ llvm-toolchain-${CODENAME} main" > /etc/apt/sources.list.d/llvm.list; 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 && if [ "${UBUNTU_TAG}" != "rolling" ]; then wget -q -O- https://apt.releases.hashicorp.com/gpg | gpg --dearmor -o /etc/apt/keyrings/hashicorp-archive-keyring.gpg && echo "deb [signed-by=/etc/apt/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" > /etc/apt/sources.list.d/hashicorp.list; fi && 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=jammy UBUNTU_VERSION=22.04 TARGETARCH=amd64 NODE_VERSION=22 GO_VERSION=1.25.3 K8S_VERSION=1.34 /bin/bash -e -c git --version && docker --version && gh --version && python3 --version && go 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.13
ARG UBUNTU_VERSION=22.04
ARG TARGETARCH=amd64
RUN |3 PYTHON_VERSION=3.13 UBUNTU_VERSION=22.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.description Optimized ACT/Forgejo runner with essential CI tools for Ubuntu 22.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.ref.name ubuntu
org.opencontainers.image.source https://git.tomfos.tr/tom/act-runner
org.opencontainers.image.title act-runner-ubuntu22.04
org.opencontainers.image.url https://git.tomfos.tr/tom/act-runner
org.opencontainers.image.vendor git.tomfos.tr
org.opencontainers.image.version 22.04
Details
Container
2025-10-29 04:10:03 +00:00
1
OCI / Docker
linux/amd64
Tom Foster
MIT
800 MiB
Versions (29) View all