From 88a08351b24795f4b9722148315fc202edba43d5 Mon Sep 17 00:00:00 2001
From: Jens Petersen <petersen@redhat.com>
Date: Sun, 4 May 2025 16:20:19 +0800
Subject: [PATCH] .github/workflows, images/ubuntu: Add image definition for
 Ubuntu 25.04

https://github.com/containers/toolbox/pull/1638

Signed-off-by: Jens Petersen <petersen@redhat.com>
---
 .github/workflows/ubuntu-images.yaml |  2 +-
 images/ubuntu/25.04/Containerfile    | 44 ++++++++++++++++++++++++++++
 images/ubuntu/25.04/extra-packages   |  9 ++++++
 3 files changed, 54 insertions(+), 1 deletion(-)
 create mode 100644 images/ubuntu/25.04/Containerfile
 create mode 100644 images/ubuntu/25.04/extra-packages

diff --git a/.github/workflows/ubuntu-images.yaml b/.github/workflows/ubuntu-images.yaml
index 276cf411a..38f143afe 100644
--- a/.github/workflows/ubuntu-images.yaml
+++ b/.github/workflows/ubuntu-images.yaml
@@ -36,7 +36,7 @@ jobs:
   build-push-images:
     strategy:
       matrix:
-        release: ['18.04', '20.04', '22.04', '24.04', '24.10']
+        release: ['18.04', '20.04', '22.04', '24.04', '24.10', '25.04']
       fail-fast: false
 
     runs-on: ubuntu-latest
diff --git a/images/ubuntu/25.04/Containerfile b/images/ubuntu/25.04/Containerfile
new file mode 100644
index 000000000..c2f21a971
--- /dev/null
+++ b/images/ubuntu/25.04/Containerfile
@@ -0,0 +1,44 @@
+FROM docker.io/library/ubuntu:25.04
+
+LABEL com.github.containers.toolbox="true" \
+      name="ubuntu-toolbox" \
+      version="25.04" \
+      usage="This image is meant to be used with the toolbox command" \
+      summary="Base image for creating Ubuntu Toolbx containers" \
+      maintainer="Ievgen Popovych <jmennius@gmail.com>"
+
+# Remove apt configuration optimized for containers
+# Remove docker-gzip-indexes to help with "command-not-found"
+RUN rm /etc/apt/apt.conf.d/docker-gzip-indexes /etc/apt/apt.conf.d/docker-no-languages
+
+# Restore documentation but do not upgrade all packages
+# Install ubuntu-minimal & ubuntu-standard
+# Install extra packages as well as libnss-myhostname
+COPY extra-packages /
+RUN apt-get update && \
+    DEBIAN_FRONTEND=noninteractive apt-get -y install unminimize && \
+    sed -Ei '/apt-get (update|upgrade)/s/^/#/' /usr/bin/unminimize && \
+    yes | /usr/bin/unminimize && \
+    DEBIAN_FRONTEND=noninteractive apt-get -y install \
+        ubuntu-minimal ubuntu-standard \
+        libnss-myhostname \
+        flatpak-xdg-utils \
+        $(cat extra-packages | xargs) && \
+    rm -rd /var/lib/apt/lists/*
+RUN rm /extra-packages
+
+# Enable the use of p11-kit-client.so to access CA certificates from the host
+RUN mkdir --parents /etc/pkcs11/modules
+
+# Fix empty bind-mount to clear selinuxfs (see #337)
+RUN mkdir /usr/share/empty
+
+# Add flatpak-spawn to /usr/bin
+RUN ln -s /usr/libexec/flatpak-xdg-utils/flatpak-spawn /usr/bin/
+
+# Having anything in /home prevents toolbox from symlinking /var/home there,
+# and 'ubuntu' user with UID 1000 will most likely conflict with host user as well
+RUN userdel --remove ubuntu
+
+# Disable APT ESM hook which tries to enable some systemd services on each apt invocation
+RUN rm /etc/apt/apt.conf.d/20apt-esm-hook.conf
diff --git a/images/ubuntu/25.04/extra-packages b/images/ubuntu/25.04/extra-packages
new file mode 100644
index 000000000..b772d1277
--- /dev/null
+++ b/images/ubuntu/25.04/extra-packages
@@ -0,0 +1,9 @@
+curl
+git
+gnupg2
+keyutils
+p11-kit-modules
+tree
+unzip
+zip
+zsh