xref: /freebsd/release/tools/oci-image-static.conf (revision e8a5b9fd73f4f437a03c85e7644daa55652e224b)
1#! /bin/sh
2
3# Build Open Container Initiative (OCI) container image suitable as a base for
4# static-linked workloads. This contains mtree directories, SSL certificates and
5# a few other config files.
6
7OCI_BASE_IMAGE=
8
9oci_image_build() {
10	local srcdir=${curdir}/..
11	local m=${workdir}/rootfs
12	mtree -deU -p $m/ -f ${srcdir}/etc/mtree/BSD.root.dist > /dev/null
13	mtree -deU -p $m/var -f ${srcdir}/etc/mtree/BSD.var.dist > /dev/null
14	mtree -deU -p $m/usr -f ${srcdir}/etc/mtree/BSD.usr.dist > /dev/null
15	mtree -deU -p $m/usr/include -f ${srcdir}/etc/mtree/BSD.include.dist > /dev/null
16	mtree -deU -p $m/usr/lib -f ${srcdir}/etc/mtree/BSD.debug.dist > /dev/null
17	install_packages ${abi} ${workdir} FreeBSD-caroot FreeBSD-zoneinfo
18	cp ${srcdir}/etc/master.passwd $m/etc
19	pwd_mkdb -p -d $m/etc $m/etc/master.passwd || return $?
20	cp ${srcdir}/etc/group $m/etc || return $?
21	# termcap.small is generated so we get it from OBJDIR - make sets our
22	# working directory to OBJDIR/release
23	cp ../etc/termcap/termcap.small $m/etc/termcap.small || return $?
24	cp ../etc/termcap/termcap.small $m/usr/share/misc/termcap || return $?
25	env DESTDIR=$m /usr/sbin/certctl rehash
26	# Generate a suitable repo config for pkgbase
27	case ${branch} in
28		CURRENT|STABLE|BETA*)
29			repo=base_latest
30			;;
31		*)
32			repo=base_release_${minor}
33			;;
34	esac
35	mkdir -p $m/usr/local/etc/pkg/repos
36	cat > $m/usr/local/etc/pkg/repos/base.conf <<EOF
37FreeBSD-base: {
38  url: "https://pkg.FreeBSD.org/\${ABI}/${repo}",
39  mirror_type: "srv",
40  signature_type: "fingerprints",
41  fingerprints: "/usr/share/keys/pkg",
42  enabled: yes
43}
44EOF
45
46}
47