diff options
Diffstat (limited to 'share/examples/oci')
-rw-r--r-- | share/examples/oci/Containerfile.pkg | 30 | ||||
-rw-r--r-- | share/examples/oci/README | 7 |
2 files changed, 37 insertions, 0 deletions
diff --git a/share/examples/oci/Containerfile.pkg b/share/examples/oci/Containerfile.pkg new file mode 100644 index 000000000000..f6699c79af71 --- /dev/null +++ b/share/examples/oci/Containerfile.pkg @@ -0,0 +1,30 @@ +# This is an example showing how to extend the freebsd-runtime OCI image by +# installing additional packages while keeping the resulting image as small as +# possible. + +# The OS version matching the desired freebsd-runtime image +ARG version=14.snap + +# Select freebsd-runtime as our starting point. +FROM ghcr.io/freebsd/freebsd-runtime:${version} + +# A list of package(s) to install +ARG packages + +# Install package management tools. We specify 'FreeBSD' as the repository to +# use for downloading pkg since the freebsd-runtime image has both FreeBSD and +# FreeBSD-base pkg repo configs installed and FreeBSD-base does not contain the +# pkg package. +# +# Set IGNORE_OSVERSION to allow building e.g. FreeBSD-14 images on +# FreeBSD-15 hosts. +RUN pkg bootstrap -y -r FreeBSD && pkg -o IGNORE_OSVERSION=yes update -f + +# Install some package(s). +RUN pkg install -y ${packages} + +# Clean up and remove package management overhead. We delete downloaded +# packages, uninstall pkg and delete the repository metadata downloaded by 'pkg +# install'. This retains the record of which packages are installed in the +# image. +RUN pkg clean -ay && pkg delete -fy pkg && rm -rf /var/db/pkg/repos diff --git a/share/examples/oci/README b/share/examples/oci/README new file mode 100644 index 000000000000..890641cee300 --- /dev/null +++ b/share/examples/oci/README @@ -0,0 +1,7 @@ +This example Containerfile shows how to add packages to freebsd-runtime while +minimising the package metadata overhead. + +For instance, To build a new image called 'my-new-image:latest' containing the +nginx package: + +# podman build --squash --build-arg packages=nginx --tag my-new-image:latest -f Containerfile.pkg |