Skip to content

Problem writing in xAR operation; archives contains unclosed entries #171

@sverhagen

Description

@sverhagen

As of 0.11.4 we are seeing the following problem:

[INFO] --- docker-maven-plugin:0.11.4:build (dockerize) @ myProject ---
[INFO] DOCKER> Creating image [myCompany/myProject:0.1.0-SNAPSHOT] "myProject"
[INFO] Reading assembly descriptor: E:\myProject\src\build\docker\assembly.xml
[INFO] Building tar: E:\myProject\target\docker\myCompany\myProject\0.1.0-SNAPSHOT\build\maven.tgz
[WARNING] When creating tar entry
org.codehaus.plexus.archiver.ArchiverException: Problem writing to output in xAR operation request to write '732' bytes exceeds size in header of '488' bytes for entry './usr/local/tomcat/webapps/myWebapp/META-INF/MANIFEST.MF'
        at org.codehaus.plexus.archiver.util.Streams.copyFullyDontCloseOutput(Streams.java:122)
        at org.codehaus.plexus.archiver.tar.TarArchiver.tarFile(TarArchiver.java:335)
        at org.codehaus.plexus.archiver.tar.TarArchiver.execute(TarArchiver.java:188)
        at org.codehaus.plexus.archiver.AbstractArchiver.createArchive(AbstractArchiver.java:930)
        at org.apache.maven.plugin.assembly.archive.archiver.AssemblyProxyArchiver.createArchive(AssemblyProxyArchiver.java:589)
        at org.apache.maven.plugin.assembly.archive.DefaultAssemblyArchiver.createArchive(DefaultAssemblyArchiver.java:165)
        at org.jolokia.docker.maven.assembly.DockerAssemblyManager.createAssemblyTarArchive(DockerAssemblyManager.java:177)
        at org.jolokia.docker.maven.assembly.DockerAssemblyManager.createDockerTarArchive(DockerAssemblyManager.java:69)
        at org.jolokia.docker.maven.BuildMojo.buildImage(BuildMojo.java:82)
        at org.jolokia.docker.maven.BuildMojo.executeInternal(BuildMojo.java:64)
        at org.jolokia.docker.maven.AbstractDockerMojo.execute(AbstractDockerMojo.java:134)
        at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
        at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
        at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
        at org.apache.maven.cli.MavenCli.execute(MavenCli.java:862)
        at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:286)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:197)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
        at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
        at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)

And:

[ERROR] Failed to execute goal org.jolokia:docker-maven-plugin:0.11.4:build (dockerize) on project myProject: Failed to create assembly for docker image: Error creating assembly archive docker: This archives contains unclosed entries. -> [Help 1]

Plugin execution as configured in pom.xml:

<plugin>
    <groupId>org.jolokia</groupId>
    <artifactId>docker-maven-plugin</artifactId>
    <version>0.11.4</version> <!-- NO PROBLEM WITH 0.11.3 -->
    <executions>
        <execution>
            <id>dockerize</id>
            <phase>package</phase>
            <goals>
                <goal>build</goal>
            </goals>
            <configuration>
                <images>
                    <image>
                        <name>myCompany/${project.artifactId}:${project.version}</name>
                        <alias>${project.artifactId}</alias>
                        <build>
                            <from>registry.hub.docker.com/tomcat:7-jre8</from>
                            <ports>
                                <port>8080</port>
                            </ports>
                            <assembly>
                                <basedir>/</basedir>
                                <descriptor>${basedir}/src/build/docker/assembly.xml</descriptor>
                            </assembly>
                        </build>
                    </image>
                </images>
                <registry>my company's registry</registry>
            </configuration>
        </execution>
    </executions>
</plugin>

Assembly as defined in ${basedir}/src/build/docker/assembly.xml:

<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
    <id>redacted</id>
    <dependencySets>
        <dependencySet>
            <includes>
                <include>${project.groupId}:${project.artifactId}</include>
            </includes>
            <outputDirectory>/usr/local/tomcat/webapps/myWebapp</outputDirectory>
            <unpack>true</unpack>
            <useProjectArtifact>true</useProjectArtifact>
        </dependencySet>
    </dependencySets>
    <files>
        <file>
            <outputDirectory>/usr/local/tomcat/conf</outputDirectory>
            <source>${basedir}/src/build/docker/context.xml</source>
        </file>
    </files>
</assembly>

This defect may have been introduced by issue #139, although that's just a hunch.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions