public static JibBuildRunner createJibBuildRunnerForDockerDaemonImage(
      RawConfiguration rawConfiguration,
      InferredAuthProvider inferredAuthProvider,
      ProjectProperties projectProperties,
      GlobalConfig globalConfig,
      HelpfulSuggestions helpfulSuggestions)
      throws InvalidImageReferenceException, MainClassInferenceException, InvalidAppRootException,
          IOException, InvalidWorkingDirectoryException, InvalidPlatformException,
          InvalidContainerVolumeException, IncompatibleBaseImageJavaVersionException,
          NumberFormatException, InvalidContainerizingModeException,
          InvalidFilesModificationTimeException, InvalidCreationTimeException,
          ExtraDirectoryNotFoundException, JibPluginExtensionException {
    ImageReference targetImageReference =
        getGeneratedTargetDockerTag(rawConfiguration, projectProperties, helpfulSuggestions);
    DockerDaemonImage targetImage = DockerDaemonImage.named(targetImageReference);
    Optional<Path> dockerExecutable = rawConfiguration.getDockerExecutable();
    if (dockerExecutable.isPresent()) {
      targetImage.setDockerExecutable(dockerExecutable.get());
    }
    targetImage.setDockerEnvironment(rawConfiguration.getDockerEnvironment());

    Containerizer containerizer = Containerizer.to(targetImage);
    Multimaps.asMap(globalConfig.getRegistryMirrors()).forEach(containerizer::addRegistryMirrors);

    JibContainerBuilder jibContainerBuilder =
        processCommonConfiguration(
            rawConfiguration, inferredAuthProvider, projectProperties, containerizer);
    JibContainerBuilder updatedContainerBuilder =
        projectProperties
            .runPluginExtensions(rawConfiguration.getPluginExtensions(), jibContainerBuilder)
            .setFormat(ImageFormat.Docker);

    return JibBuildRunner.forBuildToDockerDaemon(
            updatedContainerBuilder,
            containerizer,
            projectProperties::log,
            helpfulSuggestions,
            targetImageReference,
            rawConfiguration.getToTags())
        .writeImageDigest(rawConfiguration.getDigestOutputPath())
        .writeImageId(rawConfiguration.getImageIdOutputPath())
        .writeImageJson(rawConfiguration.getImageJsonOutputPath());
  }
Generate a runner for image builds to docker daemon.

@param rawConfiguration the raw configuration from the plugin
@param inferredAuthProvider the plugin specific auth provider
@param projectProperties an plugin specific implementation of {@link ProjectProperties}
@param globalConfig the Jib global config
@param helpfulSuggestions a plugin specific instance of {@link HelpfulSuggestions}
@return new {@link JibBuildRunner} to execute a build
@throws InvalidImageReferenceException if the image reference is invalid
@throws MainClassInferenceException if a main class could not be found
@throws InvalidAppRootException if the specific path for application root is invalid
@throws IOException if an error occurs creating the container builder
@throws InvalidWorkingDirectoryException if the working directory specified for the build is
    invalid
@throws InvalidPlatformException if there exists a {@link PlatformConfiguration} in the
    specified platforms list that is missing required fields or has invalid values
@throws InvalidContainerVolumeException if a specific container volume is invalid
@throws IncompatibleBaseImageJavaVersionException if the base image java version cannot support
    this build
@throws NumberFormatException if a string to number conversion operation fails
@throws InvalidContainerizingModeException if an invalid {@link ContainerizingMode} was
    specified
@throws InvalidFilesModificationTimeException if configured modification time could not be
    parsed
@throws InvalidCreationTimeException if configured creation time could not be parsed
@throws JibPluginExtensionException if an error occurred while running plugin extensions
@throws ExtraDirectoryNotFoundException if the extra directory specified for the build is not
    found
jib-plugins-common/src/main/java/com/google/cloud/tools/jib/plugins/common/PluginConfigurationProcessor.java