-
Notifications
You must be signed in to change notification settings - Fork 10
Expand file tree
/
Copy pathubi-micro-custom.sh
More file actions
45 lines (37 loc) · 1.4 KB
/
ubi-micro-custom.sh
File metadata and controls
45 lines (37 loc) · 1.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#! /bin/bash
# https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html-single/building_running_and_managing_containers/index#proc_using-the-ubi-micro-images_assembly_adding-software-to-a-ubi-container
# 获取UBI版本参数,默认值为10
ubi_version=${1:-10}
base_image=registry.access.redhat.com/ubi${ubi_version}/ubi-micro
# base_image=docker.io/rockylinux/rockylinux:9-ubi-micro
out_tag=${ubi_version}
out_image="quay.io/arloor/ubi-micro:${out_tag}"
yum install -y container-tools
microcontainer=$(buildah from ${base_image})
micromount=$(buildah mount $microcontainer)
# 从宿主机拷贝所有的zoneinfo到容器中
cp /usr/share/zoneinfo $micromount/usr/share/zoneinfo -r
# 设置时区为上海
cp /usr/share/zoneinfo/Asia/Shanghai $micromount/etc/localtime
echo "Asia/Shanghai" > $micromount/etc/timezone
# 安装所需的包
dnf install \
--installroot $micromount \
--releasever=${ubi_version} \
--config /etc/dnf/dnf.conf \
--setopt install_weak_deps=false \
--setopt=reposdir=/etc/yum.repos.d/ \
--nodocs -y \
ca-certificates iproute zlib elfutils-libelf \
|| {
echo "Failed to install packages, exiting."
exit 1
}
dnf clean all --installroot $micromount
buildah umount $microcontainer
buildah commit $microcontainer ${out_image}
podman run --rm -it --network host ${out_image} ss;date
podman login quay.io
podman push ${out_image}
buildah rm -a
buildah prune -a 2>/dev/null