From ed21baa0f49ca1308241d6259421244ef1998d56 Mon Sep 17 00:00:00 2001 From: Devin Buhl Date: Tue, 26 Dec 2023 14:35:06 -0500 Subject: [PATCH] Add to default packages installed: curl git jq unzip These packages are used in a ton of actions on the marketplace. It would be nice if they were installed and ready for use instead of having to install them with `apt-get` on every single Github workflow. --- images/Dockerfile | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/images/Dockerfile b/images/Dockerfile index 5231a149ef8..c09e1f8d71f 100644 --- a/images/Dockerfile +++ b/images/Dockerfile @@ -8,9 +8,10 @@ ARG RUNNER_CONTAINER_HOOKS_VERSION=0.6.0 ARG DOCKER_VERSION=25.0.5 ARG BUILDX_VERSION=0.13.1 -RUN apt update -y && apt install curl unzip -y - WORKDIR /actions-runner + +RUN apt update -y && apt install -y --no-install-recommends curl unzip + 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 \ @@ -49,27 +50,32 @@ ENV RUNNER_MANUALLY_TRAP_SIG=1 ENV ACTIONS_RUNNER_PRINT_LOG_TO_STDOUT=1 ENV ImageOS=ubuntu22 +# Copy PPAs from build stage +COPY --from=build /etc/apt/sources.list.d/*.list /etc/apt/sources.list.d/ +COPY --from=build /etc/apt/trusted.gpg.d/*.gpg /etc/apt/trusted.gpg.d/ + +# Copy Docker files from build stage +COPY --from=build --chown=root:root --chmod=0755 /actions-docker/docker/* /usr/bin/ +COPY --from=build /usr/local/lib/docker/cli-plugins/docker-buildx /usr/local/lib/docker/cli-plugins/docker-buildx + +# Install a sane set of base utilities RUN apt update -y \ - && apt install -y --no-install-recommends sudo lsb-release \ + && apt install -y --no-install-recommends \ + sudo lsb-release \ + curl git jq unzip \ && rm -rf /var/lib/apt/lists/* -RUN adduser --disabled-password --gecos "" --uid 1001 runner \ +# Create the actions runner user and home directory +RUN adduser --home /home/runner --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 -# Copy Docker files from build stage -COPY --from=build --chown=root:root --chmod=0755 /actions-docker/docker/* /usr/bin/ -COPY --from=build /usr/local/lib/docker/cli-plugins/docker-buildx /usr/local/lib/docker/cli-plugins/docker-buildx - -# Copy PPAs from build stage -COPY --from=build /etc/apt/sources.list.d/*.list /etc/apt/sources.list.d/ -COPY --from=build /etc/apt/trusted.gpg.d/*.gpg /etc/apt/trusted.gpg.d/ +WORKDIR /home/runner # Copy everything from /actions-runner in the build stage as our runner home -WORKDIR /home/runner COPY --chown=runner:docker --from=build /actions-runner . USER runner