boil builds container images in parallel.
- Define versions of container images and version specific values via the
boil-config.tomlfile. - Refer to local images in Containerfiles via
FROM local-image/.... Nesting is supported. - Structured output is provided for any potential follow-up tasks.
Either compile and run the binary, or use the cargo boil alias.
# Builds all version of the image located in the 'airflow' folder
boil build airflow
# Builds the 3.0.1 version of the image located in the 'airflow' folder
boil build airflow=3.0.1
# Builds both the 3.0.1 and 2.10.5 versions of the image located in the
# 'airflow' folder
boil build airflow=3.0.1,2.10.5
# Builds all versions of the images located in the 'airflow' and 'opa' folder
boil build airflow opa
# Display a list of all images and their declared versions as structured JSON
# output
boil image list
# Display a list of versions of the image located in the 'airflow' folder
boil image list airflowProject-wide options are configured in the global boil.toml configuration file, which is located
at the root of the repository. The config currently supports setting global build arguments and
metadata used for image annotations and tag construction.
[build-arguments]
FOO = "bar" # Available in all image builds
[metadata]
documentation = "https://docs.example.org" # URL to the documentation for images
source = "https://source.example.org" # URL to the source of the images, like a Git forge
authors = "Foo <foo@example.org>" # One or more source authors
vendor-tag-prefix = "foo" # Prefix used in tag construction, eg. `1.2.3-foo4.5.6`
vendor = "Foo" # Name of the vendor
licenses = "Apache-2.0" # One or more licenses, space separatedboil discovers images by globbing for boil-config.toml files in sub directories of the repository.
These configuration files set image specific options, like build arguments, references to local
images, and registry metadata.
[metadata.registries]
"oci.example.org" = { namespace = "my/namespace" } # Used for image checks
[versions."1.2.3".local-images] # Specify references to local images per version
foo = "1.2.3"
bar = "4.5.6"
[versions."1.2.3".build-arguments] # Specify build arguments per version
FOO = "bar"