podman

Форк
0
/
build-systemd-image 
76 строк · 2.0 Кб
1
#!/bin/bash
2
#
3
# build-systemd-image - script for producing a test image with systemd
4
#
5
# Based on the build-testimage script. This script builds a fedora-based
6
# image with systemd in it, for use in systemd-based tests.
7
#
8

9
# Podman binary to use
10
PODMAN=${PODMAN:-$(pwd)/bin/podman}
11

12
# Tag for this new image
13
YMD=$(date +%Y%m%d)
14

15
# git-relative path to this script
16
create_script=$(cd $(dirname $0) && git ls-files --full-name $(basename $0))
17
if [ -z "$create_script" ]; then
18
    create_script=$0
19
fi
20
create_script_rev=$(git describe --tags)
21

22
# Creation timestamp, Zulu time
23
create_time_t=$(date +%s)
24
create_time_z=$(env TZ=UTC date --date=@$create_time_t +'%Y-%m-%dT%H:%M:%SZ')
25

26
set -e
27

28
# We'll need to create a Containerfile plus various other files to add in
29
tmpdir=$(mktemp -t -d $(basename $0).tmp.XXXXXXX)
30
cd $tmpdir
31
echo $YMD >testimage-id
32

33
cat >Containerfile <<EOF
34
FROM registry.fedoraproject.org/fedora-minimal:39
35
LABEL created_by="$create_script @ $create_script_rev"
36
LABEL created_at=$create_time_z
37
RUN microdnf install -y systemd tzdata && microdnf clean all && sed -i -e 's/.*LogColor.*/LogColor=no/' /etc/systemd/system.conf
38
ADD testimage-id /home/podman/
39
WORKDIR /home/podman
40
CMD ["/bin/echo", "This image is intended for podman CI testing"]
41
EOF
42

43
# Start from scratch
44
testimg_base=quay.io/libpod/systemd-image
45
testimg=${testimg_base}:$YMD
46
$PODMAN manifest rm $testimg &> /dev/null || true
47
$PODMAN rmi -f $testimg &> /dev/null || true
48

49
# Arch emulation on Fedora requires the qemu-user-static package.
50
declare -a arches=(amd64 arm64 ppc64le s390x)
51
n_arches=${#arches[*]}
52
i=0
53
while [[ $i -lt $n_arches ]]; do
54
    arch=${arches[$i]}
55
    i=$((i+1))
56
    echo
57
    echo "Building: $arch ($i of $n_arches)"
58
    $PODMAN build \
59
            --arch=$arch \
60
            --squash-all \
61
            --timestamp=$create_time_t \
62
            --manifest=$testimg \
63
            .
64
done
65

66
# Clean up
67
cd /tmp
68
rm -rf $tmpdir
69

70
# Tag image and push (all arches) to quay.
71
cat <<EOF
72

73
If you're happy with this image, run:
74

75
   podman manifest push --all  ${testimg} docker://${testimg}
76
EOF
77

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.