FROM ubuntu:latest ARG RUNNER_VERSION="2.323.0" # Prevents installdependencies.sh from prompting the user and blocking the image creation ARG DEBIAN_FRONTEND=noninteractive RUN apt update -y && apt upgrade -y && useradd -m docker RUN apt install -y --no-install-recommends \ curl jq git zip unzip \ # dev dependencies build-essential libssl-dev libffi-dev python3 python3-venv python3-dev python3-pip \ # dot net core dependencies libicu74 libssl3 libkrb5-3 zlib1g libcurl4 \ # Rust and Cargo dependencies gcc cmake # Install GitHub CLI RUN curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg \ && chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg \ && echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | tee /etc/apt/sources.list.d/github-cli.list > /dev/null \ && apt update -y && apt install -y gh \ && rm -rf /var/lib/apt/lists/* # Install Rust and Cargo RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y ENV PATH="/home/docker/.cargo/bin:${PATH}" ENV HOME="/home/docker" RUN cd /home/docker && mkdir actions-runner && cd actions-runner \ && curl -O -L https://github.com/actions/runner/releases/download/v${RUNNER_VERSION}/actions-runner-linux-x64-${RUNNER_VERSION}.tar.gz \ && tar xzf ./actions-runner-linux-x64-${RUNNER_VERSION}.tar.gz RUN chown -R docker ~docker && /home/docker/actions-runner/bin/installdependencies.sh COPY entrypoint.sh entrypoint.sh # make the script executable RUN chmod +x entrypoint.sh # since the config and run script for actions are not allowed to be run by root, # set the user to "docker" so all subsequent commands are run as the docker user USER docker ENTRYPOINT ["./entrypoint.sh"]