mirror of
https://github.com/actions/runner.git
synced 2025-12-10 04:06:57 +00:00
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
73 lines
3.1 KiB
Docker
73 lines
3.1 KiB
Docker
# Source: https://github.com/dotnet/dotnet-docker
|
|
FROM mcr.microsoft.com/dotnet/runtime-deps:8.0-jammy AS build
|
|
|
|
ARG TARGETOS
|
|
ARG TARGETARCH
|
|
ARG RUNNER_VERSION
|
|
ARG RUNNER_CONTAINER_HOOKS_VERSION=0.7.0
|
|
ARG DOCKER_VERSION=29.0.2
|
|
ARG BUILDX_VERSION=0.30.1
|
|
|
|
RUN apt update -y && apt install curl unzip -y
|
|
|
|
WORKDIR /actions-runner
|
|
RUN export RUNNER_ARCH=${TARGETARCH} \
|
|
&& if [ "$RUNNER_ARCH" = "amd64" ]; then export RUNNER_ARCH=x64 ; fi \
|
|
&& curl -f -L -o runner.tar.gz https://github.com/actions/runner/releases/download/v${RUNNER_VERSION}/actions-runner-${TARGETOS}-${RUNNER_ARCH}-${RUNNER_VERSION}.tar.gz \
|
|
&& tar xzf ./runner.tar.gz \
|
|
&& rm runner.tar.gz
|
|
|
|
RUN curl -f -L -o runner-container-hooks.zip https://github.com/actions/runner-container-hooks/releases/download/v${RUNNER_CONTAINER_HOOKS_VERSION}/actions-runner-hooks-k8s-${RUNNER_CONTAINER_HOOKS_VERSION}.zip \
|
|
&& unzip ./runner-container-hooks.zip -d ./k8s \
|
|
&& rm runner-container-hooks.zip
|
|
|
|
RUN curl -f -L -o runner-container-hooks.zip https://github.com/actions/runner-container-hooks/releases/download/v0.8.0/actions-runner-hooks-k8s-0.8.0.zip \
|
|
&& unzip ./runner-container-hooks.zip -d ./k8s-novolume \
|
|
&& rm runner-container-hooks.zip
|
|
|
|
RUN export RUNNER_ARCH=${TARGETARCH} \
|
|
&& if [ "$RUNNER_ARCH" = "amd64" ]; then export DOCKER_ARCH=x86_64 ; fi \
|
|
&& if [ "$RUNNER_ARCH" = "arm64" ]; then export DOCKER_ARCH=aarch64 ; fi \
|
|
&& curl -fLo docker.tgz https://download.docker.com/${TARGETOS}/static/stable/${DOCKER_ARCH}/docker-${DOCKER_VERSION}.tgz \
|
|
&& tar zxvf docker.tgz \
|
|
&& rm -rf docker.tgz \
|
|
&& mkdir -p /usr/local/lib/docker/cli-plugins \
|
|
&& curl -fLo /usr/local/lib/docker/cli-plugins/docker-buildx \
|
|
"https://github.com/docker/buildx/releases/download/v${BUILDX_VERSION}/buildx-v${BUILDX_VERSION}.linux-${TARGETARCH}" \
|
|
&& chmod +x /usr/local/lib/docker/cli-plugins/docker-buildx
|
|
|
|
FROM mcr.microsoft.com/dotnet/runtime-deps:8.0-jammy
|
|
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
ENV RUNNER_MANUALLY_TRAP_SIG=1
|
|
ENV ACTIONS_RUNNER_PRINT_LOG_TO_STDOUT=1
|
|
ENV ImageOS=ubuntu22
|
|
|
|
# 'gpg-agent' and 'software-properties-common' are needed for the 'add-apt-repository' command that follows
|
|
RUN apt update -y \
|
|
&& apt install -y --no-install-recommends sudo lsb-release gpg-agent software-properties-common curl jq unzip \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Configure git-core/ppa based on guidance here: https://git-scm.com/download/linux
|
|
RUN add-apt-repository ppa:git-core/ppa \
|
|
&& apt update -y \
|
|
&& apt install -y git \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
RUN adduser --disabled-password --gecos "" --uid 1001 runner \
|
|
&& groupadd docker --gid 123 \
|
|
&& usermod -aG sudo runner \
|
|
&& usermod -aG docker runner \
|
|
&& echo "%sudo ALL=(ALL:ALL) NOPASSWD:ALL" > /etc/sudoers \
|
|
&& echo "Defaults env_keep += \"DEBIAN_FRONTEND\"" >> /etc/sudoers \
|
|
&& chmod 777 /home/runner
|
|
|
|
WORKDIR /home/runner
|
|
|
|
COPY --chown=runner:docker --from=build /actions-runner .
|
|
COPY --from=build /usr/local/lib/docker/cli-plugins/docker-buildx /usr/local/lib/docker/cli-plugins/docker-buildx
|
|
|
|
RUN install -o root -g root -m 755 docker/* /usr/bin/ && rm -rf docker
|
|
|
|
USER runner
|