mirror of
https://github.com/containers/podman.git
synced 2025-12-02 19:28:58 +08:00
...based on f37, not f31. And make it fedora-minimal so it's smaller. And clean up dnf so it's even smaller. And tag it with our proper YMD tag, and commit the script that builds it. This broke the system-df tests. In the process of resolving that, I found those tests a little lacking. So, improve their coverage a little bit. Signed-off-by: Ed Santiago <santiago@redhat.com>
68 lines
1.7 KiB
Bash
Executable File
68 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# build-systemd-image - script for producing a test image with systemd
|
|
#
|
|
# Based on the build-testimage script. This script builds a fedora-based
|
|
# image with systemd in it, for use in systemd-based tests.
|
|
#
|
|
|
|
# Podman binary to use
|
|
PODMAN=${PODMAN:-$(pwd)/bin/podman}
|
|
|
|
# Tag for this new image
|
|
YMD=$(date +%Y%m%d)
|
|
|
|
# git-relative path to this script
|
|
create_script=$(cd $(dirname $0) && git ls-files --full-name $(basename $0))
|
|
if [ -z "$create_script" ]; then
|
|
create_script=$0
|
|
fi
|
|
|
|
# Creation timestamp, Zulu time
|
|
create_time_t=$(date +%s)
|
|
create_time_z=$(env TZ=UTC date --date=@$create_time_t +'%Y-%m-%dT%H:%M:%SZ')
|
|
|
|
set -ex
|
|
|
|
# We'll need to create a Containerfile plus various other files to add in
|
|
tmpdir=$(mktemp -t -d $(basename $0).tmp.XXXXXXX)
|
|
cd $tmpdir
|
|
echo $YMD >testimage-id
|
|
|
|
cat >Containerfile <<EOF
|
|
FROM registry.fedoraproject.org/fedora-minimal:37
|
|
LABEL created_by=$create_script
|
|
LABEL created_at=$create_time_z
|
|
RUN microdnf install -y systemd && microdnf clean all
|
|
ADD testimage-id /home/podman/
|
|
WORKDIR /home/podman
|
|
CMD ["/bin/echo", "This image is intended for podman CI testing"]
|
|
EOF
|
|
|
|
# Start from scratch
|
|
testimg_base=quay.io/libpod/systemd-image
|
|
testimg=${testimg_base}:$YMD
|
|
$PODMAN rmi -f $testimg &> /dev/null || true
|
|
|
|
# Arch emulation on Fedora requires the qemu-user-static package.
|
|
for arch in amd64 arm64 ppc64le s390x;do
|
|
$PODMAN build \
|
|
--arch=$arch \
|
|
--squash-all \
|
|
--timestamp=$create_time_t \
|
|
--manifest=$testimg \
|
|
.
|
|
done
|
|
|
|
# Clean up
|
|
cd /tmp
|
|
rm -rf $tmpdir
|
|
|
|
# Tag image and push (all arches) to quay.
|
|
cat <<EOF
|
|
|
|
If you're happy with this image, run:
|
|
|
|
podman manifest push --all ${testimg} docker://${testimg}
|
|
EOF
|