runner icon indicating copy to clipboard operation
runner copied to clipboard

Support Ubuntu 24.04 in dependency installation

Open AndreasBergmeier6176 opened this issue 1 year ago • 4 comments

Describe the bug Currently runner cannot be installed on Ubuntu 24.04

To Reproduce Steps to reproduce the behavior:

  1. Install 24.04
  2. Download latest runner release
  3. Extract latest runner release
  4. ./bin/installdependencies.sh
  5. See error

Expected behavior Should support 24.04

Runner Version and Platform

Version of your runner?

OS of the machine running the runner? Linux

What's not working?

Unable to locate package libssl1.0.0$
Unable to locate package libicu63

AndreasBergmeier6176 avatar Jul 16 '24 12:07 AndreasBergmeier6176

https://github.com/actions/runner/pull/3303 partly enables this.

AndreasBergmeier6176 avatar Jul 16 '24 12:07 AndreasBergmeier6176

I have the runner on ubuntu 24.04 for more than 3 weeks.

seuros avatar Jul 18 '24 21:07 seuros

I have the runner on ubuntu 24.04 for more than 3 weeks.

Not sure why you wrote this message. Could you elaborate how you think this helps?

AndreasBergmeier6176 avatar Jul 21 '24 17:07 AndreasBergmeier6176

I pointed that it already working.

Installed a fresh version ubuntu server 24.04, did a full-upgrade and the script worked without any issue.

seuros avatar Jul 22 '24 08:07 seuros

Hi @seuros , I am currently using the Open source runner image as it is and adding some custom libraries to build a new docker image. I run the ARC platform on aks clusters. Now I am looking for options to upgrade my custom runner image to ubuntu 24.04 as the opensource one only offers 22.04.

can you share some info how you have built your custom image with 24.04? Thanks!

rekha-prakash-maersk avatar Dec 10 '24 17:12 rekha-prakash-maersk

@rekha-prakash-maersk I recently opened a similar discussion: https://github.com/orgs/community/discussions/146402

pdonorio avatar Dec 11 '24 09:12 pdonorio

@rekha-prakash-maersk

I just cloud-init a server with ubuntu 24.04.

Most cloud/host provider will allow you to setup a server user_data or cloud init.

Replace with your the token, your org and the runner name.

#cloud-config
hostname: your-runner
disable_root: true
ssh_pwauth: false

package_update: true
package_upgrade: true
package_reboot_if_required: true
packages:
  - curl
  - ca-certificates
  - gnupg
  - libxml2-dev
  - libxslt1-dev
  - pkg-config
  - libyaml-dev
  - libreadline6-dev
  - zlib1g-dev
  - libncurses5-dev
  - openjdk-17-jre-headless
  - openjdk-17-jdk
  # add more package that you will need

users:
  - name: runner
    shell: /bin/bash
    homedir: /home/runner
    sudo: false
    system: false
    lock_passwd: true

runcmd:
  - |
    export DEBIAN_FRONTEND=noninteractive
    GITHUB_TOKEN=AASIUT43NOTVSREALTF3W3HNMW6A
    # Docker setup
    install -m 0755 -d /etc/apt/keyrings
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
    chmod a+r /etc/apt/keyrings/docker.gpg
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
    apt-get update
    apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

    # Runner setup
    cd /home/runner
    mkdir -p actions-runner && cd actions-runner
    curl -o actions-runner-linux-x64.tar.gz -L https://github.com/actions/runner/releases/download/v2.321.0/actions-runner-linux-x64-2.321.0.tar.gz
    tar xzf ./actions-runner-linux-x64.tar.gz
    rm actions-runner-linux-x64.tar.gz
    chown -R runner:runner /home/runner
    chmod 755 /home/runner/actions-runner
    usermod -aG docker runner
    
    su runner -c "./config.sh --url https://github.com/your-org --token $GITHUB_TOKEN --unattended --name yourrunnername"
    ./svc.sh install runner
    ./svc.sh start

seuros avatar Dec 24 '24 22:12 seuros

Hi @seuros Thank you sharing the details, I am actually deploying the runners as pods on aks k8s node pool, so it just basically a docker image very similar to the OS runner docker file. So I am still bit clueless on following your approach.

rekha-prakash-maersk avatar Jan 06 '25 11:01 rekha-prakash-maersk

Hi @seuros Thank you sharing the details, I am actually deploying the runners as pods on aks k8s node pool, so it just basically a docker image very similar to the OS runner docker file. So I am still bit clueless on following your approach.

We're having this same situation

pdonorio avatar Jan 06 '25 16:01 pdonorio

Still waiting for the update myself, but in case it may be useful to others, I've been building an Ubuntu 24 docker image with the runner since last year and with various runner releases, by simply modifying the current Dockerfile. Diff below:

$ diff --unified <(curl -sL https://raw.githubusercontent.com/actions/runner/refs/heads/main/images/Dockerfile) tmp/arc-runner-ubuntu24.dockerfile
--- /dev/fd/63  2025-06-14 12:24:33.602200419 +0300
+++ arc-runner-ubuntu24.dockerfile  2025-06-14 12:22:39.522880060 +0300
@@ -1,5 +1,8 @@
+#See https://github.com/actions/runner/blob/main/.github/workflows/publish-image.yml
+# and https://github.com/actions/runner/blob/main/images/Dockerfile
+
 # Source: https://github.com/dotnet/dotnet-docker
-FROM mcr.microsoft.com/dotnet/runtime-deps:8.0-jammy AS build
+FROM mcr.microsoft.com/dotnet/runtime-deps:9.0-noble as build

 ARG TARGETOS
 ARG TARGETARCH
@@ -32,12 +35,12 @@
         "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
+FROM mcr.microsoft.com/dotnet/runtime-deps:9.0-noble

 ENV DEBIAN_FRONTEND=noninteractive
 ENV RUNNER_MANUALLY_TRAP_SIG=1
 ENV ACTIONS_RUNNER_PRINT_LOG_TO_STDOUT=1
-ENV ImageOS=ubuntu22
+ENV ImageOS=ubuntu24

 # 'gpg-agent' and 'software-properties-common' are needed for the 'add-apt-repository' command that follows
 RUN apt update -y \

Currently I only have linux amd64 Kubernetes nodes, so build it with podman build --platform linux/amd64 --build-arg RUNNER_VERSION=2.325.0 -t actions-runner:2.325.0-1 -f arc-runner-ubuntu24.dockerfile . etc.

ocraviotto avatar Jun 14 '25 09:06 ocraviotto