@Override
                    public TarArchiver customize(TarArchiver archiver) throws IOException {
                        DefaultFileSet fileSet = DefaultFileSet.fileSet(buildConfig.getAbsoluteContextDirPath(params));
                        addDockerIncludesExcludesIfPresent(fileSet, params);
                        // Exclude non-interpolated dockerfile from source tree
                        // Interpolated Dockerfile is already added as it was created into the output directory when
                        // using dir dir mode
                        excludeDockerfile(fileSet, dockerFile);
                        fileSet.setUsingDefaultExcludes(buildConfig.useDefaultExcludes());
                        // If the content is added as archive, then we need to add the Dockerfile from the builddir
                        // directly to docker.tar (as the output builddir is not picked up in archive mode)
                        if (isArchive(assemblyConfigurations)) {
                            String name = dockerFile.getName();
                            archiver.addFile(new File(buildDirs.getOutputDirectory(), name).getAbsoluteFile(), name);
                        }

                        archiver.addFileSet(fileSet);
                        return archiver;
                    }
Create an docker tar archive from the given configuration which can be send to the Docker host for
creating the image.

@param imageName Name of the image to create (used for creating build directories)
@param params Mojos parameters (used for finding the directories)
@param buildConfig configuration for how to build the image
@param log Logger used to display warning if permissions are to be normalized
@param finalCustomizer finalCustomizer to be applied to the tar archive
@return file holding the path to the created assembly tar file
@throws MojoExecutionException
src/main/java/io/fabric8/maven/docker/assembly/DockerAssemblyManager.java