Class ContainerSpecHelper

java.lang.Object
org.apache.polaris.containerspec.ContainerSpecHelper

public final class ContainerSpecHelper extends Object
Helper functionality when using testcontainers to resolve the "full" docker image name (name and tag) via a Dockerfile, which is kept up to date using Renovate.

Requires a file Dockerfile-<NAME>-version as a resource on the classpath in the package of the given containerClass. <NAME> is replaced with the name parameter passed to containerSpecHelper(String, Class).

Example

Given an example test code like the following.

package my.code;

import static org.apache.polaris.containerspec.ContainerSpecHelper.containerSpecHelper;
import org.testcontainers.utility.DockerImageName;

class MyTestCode {

  void codeThatNeedsTheContainer() {
    DockerImageName dockerImageName = containerSpecHelper("mongodb", MyTestCode.class)
      .dockerImageName(null)
      .asCompatibleSubstituteFor("mongo");
  }

}

The above requires the file my/code/Dockerfile-mongodb-version to be on the classpath, containing just the Docker FROM, as in a file src/test/resources/my/code/Dockerfile-mongodb-version.

FROM docker.io/mongo:8.0.4

Such resource files following the Dockerfile syntax can then be version-managed with Renovate.

  • Method Details

    • containerSpecHelper

      public static ContainerSpecHelper containerSpecHelper(String name, Class<?> containerClass)
    • name

      public String name()
    • containerClass

      public Class<?> containerClass()
    • dockerImageName

      public org.testcontainers.utility.DockerImageName dockerImageName(String explicitImageName)