build: Upgrade to 24.04 in Dockerfile

`arm64` build in ubuntu:22.04 errors out with `error processing package
libc-bin`. This issue is a known issue between the binfmt (running
different architectures via QEMU) and the libc ldconfig binary running
in container. We're "suddenly" having issues as ubuntu-latest (which is
the OS version we run the GH action container with) was recently changed
from 22.04 to 24.04 and hence why upgrading the container userspace from
22.04 to 24.04 solves the problem.

Removed deprecated package `python3-distutils`.

Update image name from `20250111-0` to `20250222-0`.

Signed-off-by: Ruoqing He <heruoqing@iscas.ac.cn>
This commit is contained in:
Ruoqing He
2025-02-22 14:37:39 +08:00
committed by Rob Bradford
parent 7d45473ff7
commit 655d512523
3 changed files with 20 additions and 19 deletions
+1 -1
View File
@@ -41,7 +41,7 @@ jobs:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
# generate Docker tags based on the following events/attributes # generate Docker tags based on the following events/attributes
tags: | tags: |
type=raw,value=20250111-0 type=raw,value=20250222-0
type=sha type=sha
- name: Build and push - name: Build and push
+18 -17
View File
@@ -5,7 +5,7 @@
# When changing this file don't forget to update the tag name in the # When changing this file don't forget to update the tag name in the
# .github/workflows/docker-image.yaml file if doing multiple per day # .github/workflows/docker-image.yaml file if doing multiple per day
FROM ubuntu:22.04 as dev FROM ubuntu:24.04 AS dev
ARG TARGETARCH ARG TARGETARCH
ARG RUST_TOOLCHAIN="1.77.0" ARG RUST_TOOLCHAIN="1.77.0"
@@ -48,7 +48,6 @@ RUN apt-get update \
python3 \ python3 \
python3-setuptools \ python3-setuptools \
ntfs-3g \ ntfs-3g \
python3-distutils \
uuid-dev \ uuid-dev \
iperf3 \ iperf3 \
zip \ zip \
@@ -126,21 +125,23 @@ RUN echo 'source $CARGO_HOME/env' >> "$HOME"/.bashrc \
# only for 'x86_64' platform images as 'docker buildx' can't build 'spdk' # only for 'x86_64' platform images as 'docker buildx' can't build 'spdk'
# hadolint ignore=DL3003,SC2046 # hadolint ignore=DL3003,SC2046
RUN if [ "$TARGETARCH" = "amd64" ]; then \ RUN if [ "$TARGETARCH" = "amd64" ]; then \
git clone https://github.com/spdk/spdk \ # Allow pip to install packages system wide
&& cd spdk \ rm /usr/lib/python3.12/EXTERNALLY-MANAGED \
&& git checkout ef8bcce58f3f02b79c0619a297e4f17e81e62b24 \ && git clone https://github.com/spdk/spdk \
&& git submodule update --init \ && cd spdk \
&& apt-get update \ && git checkout ef8bcce58f3f02b79c0619a297e4f17e81e62b24 \
&& ./scripts/pkgdep.sh \ && git submodule update --init \
&& apt-get clean \ && apt-get update \
&& ./configure --with-vfio-user \ && ./scripts/pkgdep.sh \
&& make -j $(nproc) TARGET_ARCHITECTURE=skylake \ && apt-get clean \
&& rm -rf /usr/local/bin/spdk-nvme \ && ./configure --with-vfio-user \
&& mkdir /usr/local/bin/spdk-nvme \ && make -j $(nproc) TARGET_ARCHITECTURE=skylake \
&& cp -f ./build/bin/nvmf_tgt /usr/local/bin/spdk-nvme \ && rm -rf /usr/local/bin/spdk-nvme \
&& cp -f ./scripts/rpc.py /usr/local/bin/spdk-nvme \ && mkdir /usr/local/bin/spdk-nvme \
&& cp -rf ./python /usr/local/bin \ && cp -f ./build/bin/nvmf_tgt /usr/local/bin/spdk-nvme \
&& cd .. && rm -rf spdk; fi && cp -f ./scripts/rpc.py /usr/local/bin/spdk-nvme \
&& cp -rf ./python /usr/local/bin \
&& cd .. && rm -rf spdk; fi
# install ethr tool for performance tests # install ethr tool for performance tests
RUN if [ "$TARGETARCH" = "amd64" ]; then \ RUN if [ "$TARGETARCH" = "amd64" ]; then \
+1 -1
View File
@@ -9,7 +9,7 @@ CLI_NAME="Cloud Hypervisor"
CTR_IMAGE_TAG="ghcr.io/cloud-hypervisor/cloud-hypervisor" CTR_IMAGE_TAG="ghcr.io/cloud-hypervisor/cloud-hypervisor"
# Needs to match explicit version in docker-image.yaml workflow # Needs to match explicit version in docker-image.yaml workflow
CTR_IMAGE_VERSION="20250111-0" CTR_IMAGE_VERSION="20250222-0"
: "${CTR_IMAGE:=${CTR_IMAGE_TAG}:${CTR_IMAGE_VERSION}}" : "${CTR_IMAGE:=${CTR_IMAGE_TAG}:${CTR_IMAGE_VERSION}}"
DOCKER_RUNTIME="docker" DOCKER_RUNTIME="docker"