General Configuration

Global configuration parameters specify overall behavior like the general plugin behavior or the Podman registries that are used. The podman-maven-plugin uses the Podman binary installed on your environment.

Plugin configuration

Table 1. General configuration options
Element Description Property

failOnMissingContainerfile

Determines whether the plugin should fail in case no Containerfile is found. When set to false, the plugin will not fail when no Containerfile is found.

Default value is: true

podman.fail.on.missing.containerfile

registries

A list of source registries where (base) images might be pulled from.

This property is required.

podman.registries

pushRegistry

The target registry where the images will be pushed to.

This property is required.

podman.push.registry

skipAuth

When set to true, Podman will not authenticate the current user with any of the configured registries. This may be useful when using registries that do not require authentication.

Default value is: false

podman.skip.auth

skip

When set to true, Podman will skip all configured steps.

Default value is: false

podman.skip

Listing 1. Example configuration
<configuration>
    ...
    <failOnMissingContainerfile>false</failOnMissingContainerfile>
    <registries>
        <registry>some-registry.host.com:12345</registry>
        <registry>another-registry.another-host.com</registry>
    </registries>
    <pushRegistry>some-registry.host.com:12345</pushRegistry>
    <skipAuth>true</skipAuth>
    <skip>true</skip>
    ...
</configuration>

Podman configuration

Table 2. Podman configuration options
Element Description Property

tlsVerify

Require HTTPS and verify certificates when contacting registries (default: true). If explicitly set to true, then TLS verification will be used. If set to false, then TLS verification will not be used if needed. If not specified, default registries will be searched through (in /etc/containers/registries.conf), and TLS will be skipped if a default registry is listed in the insecure registries.

Default value is: NOT_SPECIFIED

Supported values are: FALSE, TRUE, NOT_SPECIFIED

podman.tls.verify

cgroupManager

The CGroup manager to use for container cgroups. Default is systemd unless overridden in the containers.conf file.

Note: Setting this flag can cause certain commands to break when called on containers previously created by the other CGroup manager type. Note: CGroup manager is not supported in rootless mode when using CGroups Version V1.

Default value is: -

Supported values are: SYSTEMD, CGROUPFS

See: https://docs.podman.io/en/latest/markdown/podman.1.html#cgroup-manager-manager

podman.cgroup.manager

root

Storage root dir in which data, including images, is stored (default: “/var/lib/containers/storage” for UID 0, “$HOME/.local/share/containers/storage” for other users). Default root dir configured in /etc/containers/storage.conf.

See: https://docs.podman.io/en/latest/markdown/podman.1.html

podman.root

runRoot

Storage state directory where all state information is stored (default: “/run/containers/storage” for UID 0, “/run/user/$UID/run” for other users). Default state dir configured in /etc/containers/storage.conf.

See: https://docs.podman.io/en/latest/markdown/podman.1.html

podman.run.root

runDirectory

Directory from where the Podman executable should be run.

Default value is: Directory where the Containerfile is located.

podman.run.directory

When using a custom root storage location for Podman, please be aware that it is mandatory to configure the clean mojo, if the custom Podman storage location is set to be anywhere in the projects directory. This has to do with Podman storing its containers and layers in a different user namespace. This prevents a user from (accidentally) deleting these files but also prevents the mvn clean goal from executing cleanly. See Clean for more information.
Listing 2. Example configuration
<configuration>
    ...
    <podman>
        <tlsVerify>FALSE</tlsVerify>
        <root>/path/to/custom/root</root>
        <runRoot>/path/to/custom/runroot</runRoot>
        <runDirectory>/path/to/custom/runroot</runDirectory>
    </podman>
    ...
</configuration>