mirror of https://github.com/containers/podman.git
				
				
				
			
		
			
				
	
	
		
			77 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			77 lines
		
	
	
		
			2.0 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
 | |
| create_script_rev=$(git describe --tags)
 | |
| 
 | |
| # 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 -e
 | |
| 
 | |
| # 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:39
 | |
| LABEL created_by="$create_script @ $create_script_rev"
 | |
| LABEL created_at=$create_time_z
 | |
| RUN microdnf install -y systemd tzdata && microdnf clean all && sed -i -e 's/.*LogColor.*/LogColor=no/' /etc/systemd/system.conf
 | |
| 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 manifest rm $testimg &> /dev/null || true
 | |
| $PODMAN rmi -f $testimg &> /dev/null || true
 | |
| 
 | |
| # Arch emulation on Fedora requires the qemu-user-static package.
 | |
| declare -a arches=(amd64 arm64 ppc64le s390x)
 | |
| n_arches=${#arches[*]}
 | |
| i=0
 | |
| while [[ $i -lt $n_arches ]]; do
 | |
|     arch=${arches[$i]}
 | |
|     i=$((i+1))
 | |
|     echo
 | |
|     echo "Building: $arch ($i of $n_arches)"
 | |
|     $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
 |