xref: /freebsd/share/examples/oci/Containerfile.pkg (revision d03c82c28da86e0812b98b051d24ae5980804ad7)
1*d03c82c2SDoug Rabson# This is an example showing how to extend the freebsd-minimal OCI image by
2*d03c82c2SDoug Rabson# installing additional packages while keeping the resulting image as small as
3*d03c82c2SDoug Rabson# possible.
4*d03c82c2SDoug Rabson
5*d03c82c2SDoug Rabson# The OS version matching the desired freebsd-minimal image
6*d03c82c2SDoug RabsonARG version=15.0-CURRENT-amd64
7*d03c82c2SDoug Rabson
8*d03c82c2SDoug Rabson# Select freebsd-minimal as our starting point.
9*d03c82c2SDoug RabsonFROM localhost/freebsd-minimal:${version}
10*d03c82c2SDoug Rabson
11*d03c82c2SDoug Rabson# A list of package(s) to install
12*d03c82c2SDoug RabsonARG packages
13*d03c82c2SDoug Rabson
14*d03c82c2SDoug Rabson# Install package management tools. We specify 'FreeBSD' as the repository to
15*d03c82c2SDoug Rabson# use for downloading pkg since the freebsd-minimal image has both FreeBSD and
16*d03c82c2SDoug Rabson# FreeBSD-base pkg repo configs installed and FreeBSD-base does not contain the
17*d03c82c2SDoug Rabson# pkg package.
18*d03c82c2SDoug RabsonRUN env ASSUME_ALWAYS_YES=yes pkg bootstrap -r FreeBSD && pkg update
19*d03c82c2SDoug Rabson
20*d03c82c2SDoug Rabson# Install some package(s).
21*d03c82c2SDoug RabsonRUN pkg install -y ${packages}
22*d03c82c2SDoug Rabson
23*d03c82c2SDoug Rabson# Clean up and remove package management overhead. We delete downloaded
24*d03c82c2SDoug Rabson# packages, uninstall pkg and delete the repository metadata downloaded by 'pkg
25*d03c82c2SDoug Rabson# install'.  This retains the record of which packages are installed in the
26*d03c82c2SDoug Rabson# image.
27*d03c82c2SDoug RabsonRUN pkg clean -ay && pkg delete -fy pkg && rm -rf /var/db/pkg/repos
28