opnsense-src/share/examples/oci/Containerfile.pkg
Doug Rabson 8a688fcc24 release: add optional OCI images
This adds three OCI archive format files to the release containing
FreeBSD base images suitable for static linked, dynamic linked and shell
workloads. The shell image also contains pkg-bootstrap and can be easily
extended by installing packages (including pkgbase packages).

Approved by:	re (cperciva)
Reviewed by: dch, cpersiva, jlduran, zlei
Differential Revision: https://reviews.freebsd.org/D46759
MFC after: 2 days

(cherry picked from commit d03c82c28da86e0812b98b051d24ae5980804ad7)
(cherry picked from commit 6686056ca3)
2024-11-15 15:22:37 -08:00

27 lines
1.1 KiB
Text

# This is an example showing how to extend the freebsd-minimal OCI image by
# installing additional packages while keeping the resulting image as small as
# possible.
# The OS version matching the desired freebsd-minimal image
ARG version=15.0-CURRENT-amd64
# Select freebsd-minimal as our starting point.
FROM localhost/freebsd-minimal:${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-minimal image has both FreeBSD and
# FreeBSD-base pkg repo configs installed and FreeBSD-base does not contain the
# pkg package.
RUN env ASSUME_ALWAYS_YES=yes pkg bootstrap -r FreeBSD && pkg update
# 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