🏗 Build container images for your Java applications.

Overview

stable Maven Central Gradle Plugin Portal Build Status Build Status Build Status Gitter version

Jib

Jib - Containerize your Java applications.

☑️ Jib User Survey
What do you like best about Jib? What needs to be improved? Please tell us by taking a one-minute survey. Your responses will help us understand Jib usage and allow us to serve our customers (you!) better.

What is Jib?

Jib builds optimized Docker and OCI images for your Java applications without a Docker daemon - and without deep mastery of Docker best-practices. It is available as plugins for Maven and Gradle and as a Java library.

Maven: See documentation for jib-maven-plugin.
Gradle: See documentation for jib-gradle-plugin.
Jib Core: A general-purpose container-building library for Java.
Jib CLI: A command-line interface for building images that uses Jib Core.

For more information, check out the official blog post or watch this talk (slides).

Goals

  • Fast - Deploy your changes fast. Jib separates your application into multiple layers, splitting dependencies from classes. Now you don’t have to wait for Docker to rebuild your entire Java application - just deploy the layers that changed.

  • Reproducible - Rebuilding your container image with the same contents always generates the same image. Never trigger an unnecessary update again.

  • Daemonless - Reduce your CLI dependencies. Build your Docker image from within Maven or Gradle and push to any registry of your choice. No more writing Dockerfiles and calling docker build/push.

Quickstart

Examples

The examples directory includes the following examples (and more).

How Jib Works

Whereas traditionally a Java application is built as a single image layer with the application JAR, Jib's build strategy separates the Java application into multiple layers for more granular incremental builds. When you change your code, only your changes are rebuilt, not your entire application. These layers, by default, are layered on top of the AdoptOpenJDK base image, but you can also configure a custom base image. For more information, check out the official blog post or watch this talk (slides).

See also rules_docker for a similar existing container image build tool for the Bazel build system.

Need Help?

A lot of questions are already answered!

For usage questions, please ask them on Stack Overflow.

Privacy

See the Privacy page.

Get involved with the community

We welcome contributions! Here's how you can contribute:

Make sure to follow the Code of Conduct when contributing so we can foster an open and welcoming community.

Disclaimer

This is not an officially supported Google product.

Comments
  • Error when pushing image to a private Gitlab Registry with Maven plugin 0.9.7

    Error when pushing image to a private Gitlab Registry with Maven plugin 0.9.7

    Description of the issue: Error when pushing image to a private Gitlab Registry with Maven plugin 0.9.7

    Expected behavior: An image is built and pushed to my private Gitlab Registry

    Steps to reproduce:

    • Set up private Gitlab credentials in Maven's settings.xml in plain text to avoid additional issues
    • Run sudo mvn compile -X com.google.cloud.tools:jib-maven-plugin:0.9.7:build

    Environment:

    • Ubuntu 18.04
    • Maven 3.5.2
    • Java 10.0.0-openjdk

    jib-maven-plugin Configuration:

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    	<modelVersion>4.0.0</modelVersion>
    
    	<groupId>com.mydomain.sandbox</groupId>
    	<artifactId>slow-response</artifactId>
    	<version>0.0.1-SNAPSHOT</version>
    	<packaging>jar</packaging>
    
    	<name>slow-response</name>
    	<description>Demo project for Spring Boot</description>
    
    	<parent>
    		<groupId>org.springframework.boot</groupId>
    		<artifactId>spring-boot-starter-parent</artifactId>
    		<version>2.0.2.RELEASE</version>
    		<relativePath/> <!-- lookup parent from repository -->
    	</parent>
    
    	<properties>
    		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    		<java.version>10</java.version>
    	</properties>
    
    	<dependencies>
    		<dependency>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-starter-web</artifactId>
    		</dependency>
    
    		<dependency>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-starter-test</artifactId>
    			<scope>test</scope>
    		</dependency>
    
    		<dependency>
    			<groupId>org.projectlombok</groupId>
    			<artifactId>lombok</artifactId>
    			<version>1.18.0</version>
    		</dependency>
    	</dependencies>
    
    	<build>
    		<plugins>
    			<plugin>
    				<groupId>org.springframework.boot</groupId>
    				<artifactId>spring-boot-maven-plugin</artifactId>
    			</plugin>
    			<plugin>
    				<groupId>com.google.cloud.tools</groupId>
    				<artifactId>jib-maven-plugin</artifactId>
    				<version>0.9.7</version>
    				<configuration>
    					<to>
    						<image>gitlab.mydomain.com:4567/sandbox/slow-response</image>
    					</to>
    					<!--<allowInsecureRegistries>true</allowInsecureRegistries>-->
    				</configuration>
    				<executions>
    					<execution>
    						<phase>package</phase>
    						<goals>
    							<goal>build</goal>
    						</goals>
    					</execution>
    				</executions>
    			</plugin>
    		</plugins>
    	</build>
    
    
    </project>
    
    

    Log output:

    Error Log:
    $ sudo mvn compile -X com.google.cloud.tools:jib-maven-plugin:0.9.7:build
    Apache Maven 3.5.2
    Maven home: /usr/share/maven
    Java version: 10.0.1, vendor: Oracle Corporation
    Java home: /usr/lib/jvm/java-11-openjdk-amd64
    Default locale: fr_FR, platform encoding: UTF-8
    OS name: "linux", version: "4.15.0-29-generic", arch: "amd64", family: "unix"
    WARNING: An illegal reflective access operation has occurred
    WARNING: Illegal reflective access by com.google.inject.internal.cglib.core.$ReflectUtils$1 (file:/usr/share/maven/lib/guice.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
    WARNING: Please consider reporting this to the maintainers of com.google.inject.internal.cglib.core.$ReflectUtils$1
    WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
    WARNING: All illegal access operations will be denied in a future release
    [DEBUG] Created new class realm maven.api
    [DEBUG] Importing foreign packages into class realm maven.api
    [DEBUG]   Imported: javax.annotation.* < plexus.core
    [DEBUG]   Imported: javax.enterprise.inject.* < plexus.core
    [DEBUG]   Imported: javax.enterprise.util.* < plexus.core
    [DEBUG]   Imported: javax.inject.* < plexus.core
    [DEBUG]   Imported: org.apache.maven.* < plexus.core
    [DEBUG]   Imported: org.apache.maven.artifact < plexus.core
    [DEBUG]   Imported: org.apache.maven.classrealm < plexus.core
    [DEBUG]   Imported: org.apache.maven.cli < plexus.core
    [DEBUG]   Imported: org.apache.maven.configuration < plexus.core
    [DEBUG]   Imported: org.apache.maven.exception < plexus.core
    [DEBUG]   Imported: org.apache.maven.execution < plexus.core
    [DEBUG]   Imported: org.apache.maven.execution.scope < plexus.core
    [DEBUG]   Imported: org.apache.maven.lifecycle < plexus.core
    [DEBUG]   Imported: org.apache.maven.model < plexus.core
    [DEBUG]   Imported: org.apache.maven.monitor < plexus.core
    [DEBUG]   Imported: org.apache.maven.plugin < plexus.core
    [DEBUG]   Imported: org.apache.maven.profiles < plexus.core
    [DEBUG]   Imported: org.apache.maven.project < plexus.core
    [DEBUG]   Imported: org.apache.maven.reporting < plexus.core
    [DEBUG]   Imported: org.apache.maven.repository < plexus.core
    [DEBUG]   Imported: org.apache.maven.rtinfo < plexus.core
    [DEBUG]   Imported: org.apache.maven.settings < plexus.core
    [DEBUG]   Imported: org.apache.maven.toolchain < plexus.core
    [DEBUG]   Imported: org.apache.maven.usability < plexus.core
    [DEBUG]   Imported: org.apache.maven.wagon.* < plexus.core
    [DEBUG]   Imported: org.apache.maven.wagon.authentication < plexus.core
    [DEBUG]   Imported: org.apache.maven.wagon.authorization < plexus.core
    [DEBUG]   Imported: org.apache.maven.wagon.events < plexus.core
    [DEBUG]   Imported: org.apache.maven.wagon.observers < plexus.core
    [DEBUG]   Imported: org.apache.maven.wagon.proxy < plexus.core
    [DEBUG]   Imported: org.apache.maven.wagon.repository < plexus.core
    [DEBUG]   Imported: org.apache.maven.wagon.resource < plexus.core
    [DEBUG]   Imported: org.codehaus.classworlds < plexus.core
    [DEBUG]   Imported: org.codehaus.plexus.* < plexus.core
    [DEBUG]   Imported: org.codehaus.plexus.classworlds < plexus.core
    [DEBUG]   Imported: org.codehaus.plexus.component < plexus.core
    [DEBUG]   Imported: org.codehaus.plexus.configuration < plexus.core
    [DEBUG]   Imported: org.codehaus.plexus.container < plexus.core
    [DEBUG]   Imported: org.codehaus.plexus.context < plexus.core
    [DEBUG]   Imported: org.codehaus.plexus.lifecycle < plexus.core
    [DEBUG]   Imported: org.codehaus.plexus.logging < plexus.core
    [DEBUG]   Imported: org.codehaus.plexus.personality < plexus.core
    [DEBUG]   Imported: org.codehaus.plexus.util.xml.Xpp3Dom < plexus.core
    [DEBUG]   Imported: org.codehaus.plexus.util.xml.pull.XmlPullParser < plexus.core
    [DEBUG]   Imported: org.codehaus.plexus.util.xml.pull.XmlPullParserException < plexus.core
    [DEBUG]   Imported: org.codehaus.plexus.util.xml.pull.XmlSerializer < plexus.core
    [DEBUG]   Imported: org.eclipse.aether.* < plexus.core
    [DEBUG]   Imported: org.eclipse.aether.artifact < plexus.core
    [DEBUG]   Imported: org.eclipse.aether.collection < plexus.core
    [DEBUG]   Imported: org.eclipse.aether.deployment < plexus.core
    [DEBUG]   Imported: org.eclipse.aether.graph < plexus.core
    [DEBUG]   Imported: org.eclipse.aether.impl < plexus.core
    [DEBUG]   Imported: org.eclipse.aether.installation < plexus.core
    [DEBUG]   Imported: org.eclipse.aether.internal.impl < plexus.core
    [DEBUG]   Imported: org.eclipse.aether.metadata < plexus.core
    [DEBUG]   Imported: org.eclipse.aether.repository < plexus.core
    [DEBUG]   Imported: org.eclipse.aether.resolution < plexus.core
    [DEBUG]   Imported: org.eclipse.aether.spi < plexus.core
    [DEBUG]   Imported: org.eclipse.aether.transfer < plexus.core
    [DEBUG]   Imported: org.eclipse.aether.version < plexus.core
    [DEBUG]   Imported: org.fusesource.jansi.* < plexus.core
    [DEBUG]   Imported: org.slf4j.* < plexus.core
    [DEBUG]   Imported: org.slf4j.helpers.* < plexus.core
    [DEBUG]   Imported: org.slf4j.spi.* < plexus.core
    [DEBUG] Populating class realm maven.api
    [INFO] Error stacktraces are turned on.
    [DEBUG] Message scheme: color
    [DEBUG] Message styles: debug info warning error success failure strong mojo project
    [DEBUG] Reading global settings from /usr/share/maven/conf/settings.xml
    [DEBUG] Reading user settings from /root/.m2/settings.xml
    [DEBUG] Reading global toolchains from /usr/share/maven/conf/toolchains.xml
    [DEBUG] Reading user toolchains from /root/.m2/toolchains.xml
    [DEBUG] Using local repository at /root/.m2/repository
    [DEBUG] Using manager EnhancedLocalRepositoryManager with priority 10.0 for /root/.m2/repository
    [INFO] Scanning for projects...
    [DEBUG] Extension realms for project com.mydomain.sandbox:slow-response:jar:0.0.1-SNAPSHOT: (none)
    [DEBUG] Looking up lifecycle mappings for packaging jar from ClassRealm[plexus.core, parent: null]
    [DEBUG] Extension realms for project org.springframework.boot:spring-boot-starter-parent:pom:2.0.2.RELEASE: (none)
    [DEBUG] Looking up lifecycle mappings for packaging pom from ClassRealm[plexus.core, parent: null]
    [DEBUG] Extension realms for project org.springframework.boot:spring-boot-dependencies:pom:2.0.2.RELEASE: (none)
    [DEBUG] Looking up lifecycle mappings for packaging pom from ClassRealm[plexus.core, parent: null]
    [DEBUG] === REACTOR BUILD PLAN ================================================
    [DEBUG] Project: com.mydomain.sandbox:slow-response:jar:0.0.1-SNAPSHOT
    [DEBUG] Tasks:   [compile, com.google.cloud.tools:jib-maven-plugin:0.9.7:build]
    [DEBUG] Style:   Regular
    [DEBUG] =======================================================================
    [INFO] 
    [INFO] ------------------------------------------------------------------------
    [INFO] Building slow-response 0.0.1-SNAPSHOT
    [INFO] ------------------------------------------------------------------------
    [DEBUG] Lifecycle default -> [validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy]
    [DEBUG] Lifecycle clean -> [pre-clean, clean, post-clean]
    [DEBUG] Lifecycle site -> [pre-site, site, post-site, site-deploy]
    [DEBUG] Lifecycle default -> [validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy]
    [DEBUG] Lifecycle clean -> [pre-clean, clean, post-clean]
    [DEBUG] Lifecycle site -> [pre-site, site, post-site, site-deploy]
    [DEBUG] Lifecycle default -> [validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy]
    [DEBUG] Lifecycle clean -> [pre-clean, clean, post-clean]
    [DEBUG] Lifecycle site -> [pre-site, site, post-site, site-deploy]
    [DEBUG] Lifecycle default -> [validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy]
    [DEBUG] Lifecycle clean -> [pre-clean, clean, post-clean]
    [DEBUG] Lifecycle site -> [pre-site, site, post-site, site-deploy]
    [DEBUG] === PROJECT BUILD PLAN ================================================
    [DEBUG] Project:       com.mydomain.sandbox:slow-response:0.0.1-SNAPSHOT
    [DEBUG] Dependencies (collect): []
    [DEBUG] Dependencies (resolve): [compile, runtime+system]
    [DEBUG] Repositories (dependencies): [central (https://repo.maven.apache.org/maven2, default, releases)]
    [DEBUG] Repositories (plugins)     : [central (https://repo.maven.apache.org/maven2, default, releases)]
    [DEBUG] -----------------------------------------------------------------------
    [DEBUG] Goal:          org.apache.maven.plugins:maven-resources-plugin:3.0.1:resources (default-resources)
    [DEBUG] Style:         Regular
    [DEBUG] Configuration: <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
      <addDefaultExcludes default-value="true"/>
      <buildFilters default-value="${project.build.filters}"/>
      <delimiters>
        <delimiter>@</delimiter>
      </delimiters>
      <encoding default-value="${project.build.sourceEncoding}"/>
      <escapeString default-value="\"/>
      <escapeWindowsPaths default-value="true"/>
      <fileNameFiltering default-value="false"/>
      <includeEmptyDirs default-value="false"/>
      <outputDirectory default-value="${project.build.outputDirectory}"/>
      <overwrite default-value="false"/>
      <project default-value="${project}"/>
      <resources default-value="${project.resources}"/>
      <session default-value="${session}"/>
      <skip default-value="false">${maven.resources.skip}</skip>
      <supportMultiLineFiltering default-value="false"/>
      <useBuildFilters default-value="true"/>
      <useDefaultDelimiters default-value="true">false</useDefaultDelimiters>
    </configuration>
    [DEBUG] -----------------------------------------------------------------------
    [DEBUG] Goal:          org.apache.maven.plugins:maven-compiler-plugin:3.7.0:compile (default-compile)
    [DEBUG] Style:         Regular
    [DEBUG] Configuration: <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
      <basedir default-value="${basedir}"/>
      <buildDirectory default-value="${project.build.directory}"/>
      <compilePath default-value="${project.compileClasspathElements}"/>
      <compileSourceRoots default-value="${project.compileSourceRoots}"/>
      <compilerId default-value="javac">${maven.compiler.compilerId}</compilerId>
      <compilerReuseStrategy default-value="${reuseCreated}">${maven.compiler.compilerReuseStrategy}</compilerReuseStrategy>
      <compilerVersion>${maven.compiler.compilerVersion}</compilerVersion>
      <debug default-value="true">${maven.compiler.debug}</debug>
      <debuglevel>${maven.compiler.debuglevel}</debuglevel>
      <encoding default-value="${project.build.sourceEncoding}">${encoding}</encoding>
      <executable>${maven.compiler.executable}</executable>
      <failOnError default-value="true">${maven.compiler.failOnError}</failOnError>
      <failOnWarning default-value="false">${maven.compiler.failOnWarning}</failOnWarning>
      <forceJavacCompilerUse default-value="false">${maven.compiler.forceJavacCompilerUse}</forceJavacCompilerUse>
      <fork default-value="false">${maven.compiler.fork}</fork>
      <generatedSourcesDirectory default-value="${project.build.directory}/generated-sources/annotations"/>
      <maxmem>${maven.compiler.maxmem}</maxmem>
      <meminitial>${maven.compiler.meminitial}</meminitial>
      <mojoExecution default-value="${mojoExecution}"/>
      <optimize default-value="false">${maven.compiler.optimize}</optimize>
      <outputDirectory default-value="${project.build.outputDirectory}"/>
      <parameters default-value="false">true</parameters>
      <project default-value="${project}"/>
      <projectArtifact default-value="${project.artifact}"/>
      <release>${maven.compiler.release}</release>
      <session default-value="${session}"/>
      <showDeprecation default-value="false">${maven.compiler.showDeprecation}</showDeprecation>
      <showWarnings default-value="false">${maven.compiler.showWarnings}</showWarnings>
      <skipMain>${maven.main.skip}</skipMain>
      <skipMultiThreadWarning default-value="false">${maven.compiler.skipMultiThreadWarning}</skipMultiThreadWarning>
      <source default-value="1.5">${maven.compiler.source}</source>
      <staleMillis default-value="0">${lastModGranularityMs}</staleMillis>
      <target default-value="1.5">${maven.compiler.target}</target>
      <useIncrementalCompilation default-value="true">${maven.compiler.useIncrementalCompilation}</useIncrementalCompilation>
      <verbose default-value="false">${maven.compiler.verbose}</verbose>
    </configuration>
    [DEBUG] -----------------------------------------------------------------------
    [DEBUG] Goal:          com.google.cloud.tools:jib-maven-plugin:0.9.7:build (default-cli)
    [DEBUG] Style:         Regular
    [DEBUG] Configuration: <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
      <allowInsecureRegistries default-value="false"/>
      <extraDirectory default-value="${project.basedir}/src/main/jib"/>
      <project default-value="${project}"/>
      <session default-value="${session}"/>
      <to>
        <image>gitlab.mydomain.com:4567/sandbox/slow-response</image>${image}</to>
      <useOnlyProjectCache default-value="false"/>
    </configuration>
    [DEBUG] =======================================================================
    [DEBUG] Dependency collection stats: {ConflictMarker.analyzeTime=673018, ConflictMarker.markTime=342394, ConflictMarker.nodeCount=102, ConflictIdSorter.graphTime=342847, ConflictIdSorter.topsortTime=238780, ConflictIdSorter.conflictIdCount=57, ConflictIdSorter.conflictIdCycleCount=0, ConflictResolver.totalTime=5667232, ConflictResolver.conflictItemCount=93, DefaultDependencyCollector.collectTime=220748887, DefaultDependencyCollector.transformTime=8615858}
    [DEBUG] com.mydomain.sandbox:slow-response:jar:0.0.1-SNAPSHOT
    [DEBUG]    org.springframework.boot:spring-boot-starter-web:jar:2.0.2.RELEASE:compile
    [DEBUG]       org.springframework.boot:spring-boot-starter:jar:2.0.2.RELEASE:compile (version managed from 2.0.2.RELEASE)
    [DEBUG]          org.springframework.boot:spring-boot:jar:2.0.2.RELEASE:compile (version managed from 2.0.2.RELEASE)
    [DEBUG]          org.springframework.boot:spring-boot-autoconfigure:jar:2.0.2.RELEASE:compile (version managed from 2.0.2.RELEASE)
    [DEBUG]          org.springframework.boot:spring-boot-starter-logging:jar:2.0.2.RELEASE:compile (version managed from 2.0.2.RELEASE)
    [DEBUG]             ch.qos.logback:logback-classic:jar:1.2.3:compile (version managed from 1.2.3)
    [DEBUG]                ch.qos.logback:logback-core:jar:1.2.3:compile (version managed from 1.2.3)
    [DEBUG]             org.apache.logging.log4j:log4j-to-slf4j:jar:2.10.0:compile (version managed from 2.10.0)
    [DEBUG]                org.apache.logging.log4j:log4j-api:jar:2.10.0:compile (version managed from 2.10.0)
    [DEBUG]             org.slf4j:jul-to-slf4j:jar:1.7.25:compile (version managed from 1.7.25)
    [DEBUG]          javax.annotation:javax.annotation-api:jar:1.3.2:compile (version managed from 1.3.2)
    [DEBUG]          org.yaml:snakeyaml:jar:1.19:runtime (version managed from 1.19)
    [DEBUG]       org.springframework.boot:spring-boot-starter-json:jar:2.0.2.RELEASE:compile (version managed from 2.0.2.RELEASE)
    [DEBUG]          com.fasterxml.jackson.core:jackson-databind:jar:2.9.5:compile (version managed from 2.9.5)
    [DEBUG]             com.fasterxml.jackson.core:jackson-annotations:jar:2.9.0:compile (version managed from 2.9.0)
    [DEBUG]             com.fasterxml.jackson.core:jackson-core:jar:2.9.5:compile (version managed from 2.9.5)
    [DEBUG]          com.fasterxml.jackson.datatype:jackson-datatype-jdk8:jar:2.9.5:compile (version managed from 2.9.5)
    [DEBUG]          com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.9.5:compile (version managed from 2.9.5)
    [DEBUG]          com.fasterxml.jackson.module:jackson-module-parameter-names:jar:2.9.5:compile (version managed from 2.9.5)
    [DEBUG]       org.springframework.boot:spring-boot-starter-tomcat:jar:2.0.2.RELEASE:compile (version managed from 2.0.2.RELEASE)
    [DEBUG]          org.apache.tomcat.embed:tomcat-embed-core:jar:8.5.31:compile (version managed from 8.5.31)
    [DEBUG]          org.apache.tomcat.embed:tomcat-embed-el:jar:8.5.31:compile (version managed from 8.5.31)
    [DEBUG]          org.apache.tomcat.embed:tomcat-embed-websocket:jar:8.5.31:compile (version managed from 8.5.31)
    [DEBUG]       org.hibernate.validator:hibernate-validator:jar:6.0.9.Final:compile (version managed from 6.0.9.Final)
    [DEBUG]          javax.validation:validation-api:jar:2.0.1.Final:compile (version managed from 2.0.1.Final)
    [DEBUG]          org.jboss.logging:jboss-logging:jar:3.3.2.Final:compile (version managed from 3.3.2.Final)
    [DEBUG]          com.fasterxml:classmate:jar:1.3.4:compile (version managed from 1.3.4)
    [DEBUG]       org.springframework:spring-web:jar:5.0.6.RELEASE:compile (version managed from 5.0.6.RELEASE)
    [DEBUG]          org.springframework:spring-beans:jar:5.0.6.RELEASE:compile (version managed from 5.0.6.RELEASE)
    [DEBUG]       org.springframework:spring-webmvc:jar:5.0.6.RELEASE:compile (version managed from 5.0.6.RELEASE)
    [DEBUG]          org.springframework:spring-aop:jar:5.0.6.RELEASE:compile (version managed from 5.0.6.RELEASE)
    [DEBUG]          org.springframework:spring-context:jar:5.0.6.RELEASE:compile (version managed from 5.0.6.RELEASE)
    [DEBUG]          org.springframework:spring-expression:jar:5.0.6.RELEASE:compile (version managed from 5.0.6.RELEASE)
    [DEBUG]    org.springframework.boot:spring-boot-starter-test:jar:2.0.2.RELEASE:test
    [DEBUG]       org.springframework.boot:spring-boot-test:jar:2.0.2.RELEASE:test (version managed from 2.0.2.RELEASE)
    [DEBUG]       org.springframework.boot:spring-boot-test-autoconfigure:jar:2.0.2.RELEASE:test (version managed from 2.0.2.RELEASE)
    [DEBUG]       com.jayway.jsonpath:json-path:jar:2.4.0:test (version managed from 2.4.0)
    [DEBUG]          net.minidev:json-smart:jar:2.3:test
    [DEBUG]             net.minidev:accessors-smart:jar:1.2:test
    [DEBUG]                org.ow2.asm:asm:jar:5.0.4:test
    [DEBUG]          org.slf4j:slf4j-api:jar:1.7.25:compile (version managed from 1.7.25)
    [DEBUG]       junit:junit:jar:4.12:test (version managed from 4.12)
    [DEBUG]       org.assertj:assertj-core:jar:3.9.1:test (version managed from 3.9.1)
    [DEBUG]       org.mockito:mockito-core:jar:2.15.0:test (version managed from 2.15.0)
    [DEBUG]          net.bytebuddy:byte-buddy:jar:1.7.11:test (version managed from 1.7.9)
    [DEBUG]          net.bytebuddy:byte-buddy-agent:jar:1.7.11:test (version managed from 1.7.9)
    [DEBUG]          org.objenesis:objenesis:jar:2.6:test
    [DEBUG]       org.hamcrest:hamcrest-core:jar:1.3:test (version managed from 1.3)
    [DEBUG]       org.hamcrest:hamcrest-library:jar:1.3:test (version managed from 1.3)
    [DEBUG]       org.skyscreamer:jsonassert:jar:1.5.0:test (version managed from 1.5.0)
    [DEBUG]          com.vaadin.external.google:android-json:jar:0.0.20131108.vaadin1:test
    [DEBUG]       org.springframework:spring-core:jar:5.0.6.RELEASE:compile (version managed from 5.0.6.RELEASE)
    [DEBUG]          org.springframework:spring-jcl:jar:5.0.6.RELEASE:compile (version managed from 5.0.6.RELEASE)
    [DEBUG]       org.springframework:spring-test:jar:5.0.6.RELEASE:test (version managed from 5.0.6.RELEASE)
    [DEBUG]       org.xmlunit:xmlunit-core:jar:2.5.1:test (version managed from 2.5.1)
    [DEBUG]    org.projectlombok:lombok:jar:1.18.0:compile
    [INFO] 
    [INFO] --- maven-resources-plugin:3.0.1:resources (default-resources) @ slow-response ---
    [DEBUG] Dependency collection stats: {ConflictMarker.analyzeTime=271467, ConflictMarker.markTime=137065, ConflictMarker.nodeCount=69, ConflictIdSorter.graphTime=128015, ConflictIdSorter.topsortTime=39636, ConflictIdSorter.conflictIdCount=28, ConflictIdSorter.conflictIdCycleCount=0, ConflictResolver.totalTime=1203560, ConflictResolver.conflictItemCount=68, DefaultDependencyCollector.collectTime=123717023, DefaultDependencyCollector.transformTime=1857331}
    [DEBUG] org.apache.maven.plugins:maven-resources-plugin:jar:3.0.1:
    [DEBUG]    org.apache.maven:maven-plugin-api:jar:3.0:compile
    [DEBUG]       org.sonatype.sisu:sisu-inject-plexus:jar:1.4.2:compile
    [DEBUG]          org.sonatype.sisu:sisu-inject-bean:jar:1.4.2:compile
    [DEBUG]             org.sonatype.sisu:sisu-guice:jar:noaop:2.1.7:compile
    [DEBUG]    org.apache.maven:maven-core:jar:3.0:compile
    [DEBUG]       org.apache.maven:maven-settings-builder:jar:3.0:compile
    [DEBUG]       org.apache.maven:maven-repository-metadata:jar:3.0:compile
    [DEBUG]       org.apache.maven:maven-model-builder:jar:3.0:compile
    [DEBUG]       org.apache.maven:maven-aether-provider:jar:3.0:runtime
    [DEBUG]       org.sonatype.aether:aether-impl:jar:1.7:compile
    [DEBUG]          org.sonatype.aether:aether-spi:jar:1.7:compile
    [DEBUG]       org.sonatype.aether:aether-api:jar:1.7:compile
    [DEBUG]       org.sonatype.aether:aether-util:jar:1.7:compile
    [DEBUG]       org.codehaus.plexus:plexus-classworlds:jar:2.2.3:compile
    [DEBUG]       org.codehaus.plexus:plexus-component-annotations:jar:1.6:compile
    [DEBUG]       org.sonatype.plexus:plexus-sec-dispatcher:jar:1.3:compile
    [DEBUG]          org.sonatype.plexus:plexus-cipher:jar:1.4:compile
    [DEBUG]    org.apache.maven:maven-artifact:jar:3.0:compile
    [DEBUG]    org.apache.maven:maven-settings:jar:3.0:compile
    [DEBUG]    org.apache.maven:maven-model:jar:3.0:compile
    [DEBUG]    org.codehaus.plexus:plexus-utils:jar:3.0.24:compile
    [DEBUG]    org.apache.maven.shared:maven-filtering:jar:3.1.1:compile
    [DEBUG]       org.apache.maven.shared:maven-shared-utils:jar:3.0.0:compile
    [DEBUG]          commons-io:commons-io:jar:2.4:compile
    [DEBUG]          com.google.code.findbugs:jsr305:jar:2.0.1:compile
    [DEBUG]       org.sonatype.plexus:plexus-build-api:jar:0.0.7:compile
    [DEBUG]    org.codehaus.plexus:plexus-interpolation:jar:1.22:compile
    [DEBUG] Created new class realm plugin>org.apache.maven.plugins:maven-resources-plugin:3.0.1
    [DEBUG] Importing foreign packages into class realm plugin>org.apache.maven.plugins:maven-resources-plugin:3.0.1
    [DEBUG]   Imported:  < maven.api
    [DEBUG] Populating class realm plugin>org.apache.maven.plugins:maven-resources-plugin:3.0.1
    [DEBUG]   Included: org.apache.maven.plugins:maven-resources-plugin:jar:3.0.1
    [DEBUG]   Included: org.sonatype.sisu:sisu-inject-bean:jar:1.4.2
    [DEBUG]   Included: org.sonatype.sisu:sisu-guice:jar:noaop:2.1.7
    [DEBUG]   Included: org.sonatype.aether:aether-util:jar:1.7
    [DEBUG]   Included: org.codehaus.plexus:plexus-component-annotations:jar:1.6
    [DEBUG]   Included: org.sonatype.plexus:plexus-sec-dispatcher:jar:1.3
    [DEBUG]   Included: org.sonatype.plexus:plexus-cipher:jar:1.4
    [DEBUG]   Included: org.codehaus.plexus:plexus-utils:jar:3.0.24
    [DEBUG]   Included: org.apache.maven.shared:maven-filtering:jar:3.1.1
    [DEBUG]   Included: org.apache.maven.shared:maven-shared-utils:jar:3.0.0
    [DEBUG]   Included: commons-io:commons-io:jar:2.4
    [DEBUG]   Included: com.google.code.findbugs:jsr305:jar:2.0.1
    [DEBUG]   Included: org.sonatype.plexus:plexus-build-api:jar:0.0.7
    [DEBUG]   Included: org.codehaus.plexus:plexus-interpolation:jar:1.22
    [DEBUG] Configuring mojo org.apache.maven.plugins:maven-resources-plugin:3.0.1:resources from plugin realm ClassRealm[plugin>org.apache.maven.plugins:maven-resources-plugin:3.0.1, parent: jdk.internal.loader.ClassLoaders$AppClassLoader@1de0aca6]
    [DEBUG] Configuring mojo 'org.apache.maven.plugins:maven-resources-plugin:3.0.1:resources' with basic configurator -->
    [DEBUG]   (f) addDefaultExcludes = true
    [DEBUG]   (f) buildFilters = []
    [DEBUG]   (s) delimiters = [@]
    [DEBUG]   (f) encoding = UTF-8
    [DEBUG]   (f) escapeString = \
    [DEBUG]   (f) escapeWindowsPaths = true
    [DEBUG]   (f) fileNameFiltering = false
    [DEBUG]   (s) includeEmptyDirs = false
    [DEBUG]   (s) outputDirectory = /home/did/Dev/sandbox/_SPRING/slow-response/target/classes
    [DEBUG]   (s) overwrite = false
    [DEBUG]   (f) project = MavenProject: com.mydomain.sandbox:slow-response:0.0.1-SNAPSHOT @ /home/did/Dev/sandbox/_SPRING/slow-response/pom.xml
    [DEBUG]   (s) resources = [Resource {targetPath: null, filtering: true, FileSet {directory: /home/did/Dev/sandbox/_SPRING/slow-response/src/main/resources, PatternSet [includes: {**/application*.yml, **/application*.yaml, **/application*.properties}, excludes: {}]}}, Resource {targetPath: null, filtering: false, FileSet {directory: /home/did/Dev/sandbox/_SPRING/slow-response/src/main/resources, PatternSet [includes: {}, excludes: {**/application*.yml, **/application*.yaml, **/application*.properties}]}}]
    [DEBUG]   (f) session = org.apache.maven.execution.MavenSession@4dc8c0ea
    [DEBUG]   (f) skip = false
    [DEBUG]   (f) supportMultiLineFiltering = false
    [DEBUG]   (f) useBuildFilters = true
    [DEBUG]   (s) useDefaultDelimiters = false
    [DEBUG] -- end configuration --
    [DEBUG] properties used {spring-integration.version=5.0.5.RELEASE, flyway.version=5.0.7, java.specification.version=10, webjars-hal-browser.version=3325375, java.vendor.url=http://java.oracle.com/, jna.version=4.5.1, sun.boot.library.path=/usr/lib/jvm/java-11-openjdk-amd64/lib, sun.java.command=org.codehaus.plexus.classworlds.launcher.Launcher compile -X com.google.cloud.tools:jib-maven-plugin:0.9.7:build, jdk.debug=release, maven.version=3.5.2, kafka.version=1.0.1, jboss-transaction-spi.version=7.6.0.Final, java.specification.name=Java Platform API Specification, java.vm.specification.vendor=Oracle Corporation, exec-maven-plugin.version=1.5.0, maven-install-plugin.version=2.5.2, byte-buddy.version=1.7.11, java.runtime.version=10.0.1+10-Ubuntu-3ubuntu1, micrometer.version=1.0.4, rxjava-adapter.version=1.2.1, project.baseUri=file:/home/did/Dev/sandbox/_SPRING/slow-response/, hibernate.version=5.2.17.Final, java.io.tmpdir=/tmp, java.version=10.0.1, build-helper-maven-plugin.version=3.0.0, mockito.version=2.15.0, java.vm.specification.name=Java Virtual Machine Specification, infinispan.version=9.1.7.Final, nekohtml.version=1.9.22, maven-assembly-plugin.version=3.1.0, java.library.path=/usr/java/packages/lib:/usr/lib/x86_64-linux-gnu/jni:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:/usr/lib/jni:/lib:/usr/lib, java.vendor=Oracle Corporation, spring-cloud-connectors.version=2.0.1.RELEASE, thymeleaf-extras-java8time.version=3.0.1.RELEASE, undertow.version=1.4.25.Final, mariadb.version=2.2.3, env.XAUTHORITY=/home/did/.Xauthority, selenium-htmlunit.version=2.29.3, thymeleaf-extras-data-attribute.version=2.0.1, ehcache3.version=3.5.2, commons-dbcp2.version=2.2.0, env.LANG=fr_FR.UTF-8, mongodb.version=3.6.3, couchbase-cache-client.version=2.1.0, env.LC_MONETARY=fr_FR.UTF-8, user.timezone=, java.vm.specification.version=10, javax-transaction.version=1.2, maven.compiler.source=10, user.home=/root, spring.version=5.0.6.RELEASE, postgresql.version=42.2.2, env.LANGUAGE=, reactive-streams.version=1.0.2, jmustache.version=1.14, querydsl.version=4.1.4, appengine-sdk.version=1.9.63, thymeleaf-layout-dialect.version=2.3.0, hamcrest.version=1.3, os.version=4.15.0-29-generic, commons-pool.version=1.6, env.MAIL=/var/mail/root, java.vm.name=OpenJDK 64-Bit Server VM, maven-help-plugin.version=2.2, env.LC_ADDRESS=fr_FR.UTF-8, json-path.version=2.4.0, jaxen.version=1.1.6, env.USERNAME=root, os.arch=amd64, spring-batch.version=4.0.1.RELEASE, couchbase-client.version=2.5.8, derby.version=10.14.1.0, jest.version=5.3.3, javax-jsonb.version=1.0, junit-platform.version=1.1.0, rxjava2.version=2.1.13, neo4j-ogm.version=3.1.0, maven-site-plugin.version=3.6, awt.toolkit=sun.awt.X11.XToolkit, flatten-maven-plugin.version=1.0.0, commons-codec.version=1.11, caffeine.version=2.6.2, dom4j.version=1.6.1, h2.version=1.4.197, java.vm.compressedOopsMode=Zero based, unboundid-ldapsdk.version=4.0.5, javax-jaxb.version=2.3.0, sqlite-jdbc.version=3.21.0.1, env.LC_TELEPHONE=fr_FR.UTF-8, activemq.version=5.15.3, httpasyncclient.version=4.1.3, jtds.version=1.3.1, javax-jms.version=2.0.1, env.LOGNAME=root, spring-security.version=5.0.5.RELEASE, hibernate-validator.version=6.0.9.Final, assertj.version=3.9.1, influxdb-java.version=2.9, env.SUDO_USER=did, sun.os.patch.level=unknown, lombok.version=1.16.20, maven.compiler.target=10, library.jansi.path=/usr/share/maven/lib/jansi-native, commons-pool2.version=2.5.0, env.LC_MEASUREMENT=fr_FR.UTF-8, spring-retry.version=1.2.2.RELEASE, maven-invoker-plugin.version=3.0.0, maven-antrun-plugin.version=1.8, maven.conf=/usr/share/maven/conf, sun.java.launcher=SUN_STANDARD, user.country=FR, resource.delimiter=@, javax-json.version=1.1.2, jboss-logging.version=3.3.2.Final, maven-resources-plugin.version=3.0.1, javax-validation.version=2.0.1.Final, netty.version=4.1.24.Final, jetty-jsp.version=2.2.0.v201112011158, maven-source-plugin.version=3.0.1, jetty.version=9.4.10.v20180503, rxjava.version=1.3.8, elasticsearch.version=5.6.9, java.runtime.name=OpenJDK Runtime Environment, rest-assured.version=3.0.7, maven-deploy-plugin.version=2.8.2, env.MAVEN_CMD_LINE_ARGS= compile -X com.google.cloud.tools:jib-maven-plugin:0.9.7:build, log4j2.version=2.10.0, maven-failsafe-plugin.version=2.21.0, dropwizard-metrics.version=3.2.6, git-commit-id-plugin.version=2.2.3, hazelcast-hibernate5.version=1.2.3, htmlunit.version=2.29, env.TERM=xterm-256color, sun.cpu.isalist=, jackson.version=2.9.5, sun.arch.data.model=64, spring-restdocs.version=2.0.1.RELEASE, freemarker.version=2.3.28, thymeleaf.version=3.0.9.RELEASE, janino.version=3.0.8, maven-jar-plugin.version=3.0.2, maven-compiler-plugin.version=3.7.0, java.specification.vendor=Oracle Corporation, bitronix.version=2.1.4, rabbit-amqp-client.version=5.1.2, java.version.date=2018-04-17, spring-amqp.version=2.0.3.RELEASE, java.home=/usr/lib/jvm/java-11-openjdk-amd64, env.SUDO_GID=1000, spring-plugin.version=1.2.0.RELEASE, maven-war-plugin.version=3.1.0, thymeleaf-extras-springsecurity4.version=3.0.2.RELEASE, jolokia.version=1.5.0, sun.management.compiler=HotSpot 64-Bit Tiered Compilers, env.PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin, httpclient.version=4.5.5, maven-dependency-plugin.version=3.0.2, jsonassert.version=1.5.0, file.encoding=UTF-8, gson.version=2.8.4, sun-mail.version=1.6.1, env.LC_IDENTIFICATION=fr_FR.UTF-8, env.LC_NUMERIC=fr_FR.UTF-8, nio-multipart-parser.version=1.1.0, mssql-jdbc.version=6.2.2.jre8, snakeyaml.version=1.19, liquibase.version=3.5.5, java.awt.printerjob=sun.print.PSPrinterJob, httpcore.version=4.4.9, lettuce.version=5.0.4.RELEASE, org.slf4j.simpleLogger.defaultLogLevel=debug, statsd-client.version=3.1.0, classworlds.conf=/usr/share/maven/bin/m2.conf, sun.io.unicode.encoding=UnicodeLittle, joda-time.version=2.9.9, kotlin.version=1.2.41, wsdl4j.version=1.6.3, tomcat.version=8.5.31, sendgrid.version=4.1.2, spring-ws.version=3.0.1.RELEASE, commons-lang3.version=3.7, os.name=Linux, junit.version=4.12, env.DISPLAY=:0, simple-json.version=1.1.1, jetty-el.version=8.5.24.2, mongo-driver-reactivestreams.version=1.7.1, maven.build.timestamp=2018-07-31T13:51:25Z, reactor-bom.version=Bismuth-SR9, maven-enforcer-plugin.version=3.0.0-M1, jstl.version=1.2, java.awt.graphicsenv=sun.awt.X11GraphicsEnvironment, quartz.version=2.3.0, javax-money.version=1.0.3, spring-hateoas.version=0.24.0.RELEASE, path.separator=:, env.SHELL=/bin/bash, maven.multiModuleProjectDirectory=/home/did/Dev/sandbox/_SPRING/slow-response, env.MAVEN_PROJECTBASEDIR=/home/did/Dev/sandbox/_SPRING/slow-response, java.vm.info=mixed mode, cassandra-driver.version=3.4.0, env.USER=root, java.class.version=54.0, xml-maven-plugin.version=1.0.1, narayana.version=5.8.1.Final, sun.jnu.encoding=UTF-8, xmlunit2.version=2.5.1, slf4j.version=1.7.25, solr.version=6.6.3, maven.build.version=Apache Maven 3.5.2, hikaricp.version=2.7.9, maven.home=/usr/share/maven, maven-shade-plugin.version=2.4.3, file.separator=/, line.separator=
    , spring-kafka.version=2.1.6.RELEASE, jersey.version=2.26, user.name=root, env.LC_TIME=fr_FR.UTF-8, hazelcast.version=3.9.4, jdom2.version=2.0.6, atomikos.version=4.0.6, aspectj.version=1.8.13, spring-data-releasetrain.version=Kay-SR7, hsqldb.version=2.4.0, webjars-locator-core.version=0.35, project.reporting.outputEncoding=UTF-8, xml-apis.version=1.4.01, env.SUDO_COMMAND=/usr/bin/mvn compile -X com.google.cloud.tools:jib-maven-plugin:0.9.7:build, env.OLDPWD=/home/did/Dev/sandbox/_SPRING/slow-response, env.PWD=/home/did/Dev/sandbox/_SPRING/slow-response, file.encoding.pkg=sun.io, embedded-mongo.version=2.0.3, env.LC_NAME=fr_FR.UTF-8, johnzon-jsonb.version=1.1.7, spring-ldap.version=2.3.2.RELEASE, java.class.path=/usr/share/maven/boot/plexus-classworlds-2.x.jar, env.HOME=/home/did, java.vm.vendor=Oracle Corporation, maven-javadoc-plugin.version=3.0.0, servlet-api.version=3.1.0, artemis.version=2.4.0, groovy.version=2.4.15, javax-cache.version=1.1.0, logback.version=1.2.3, sun.cpu.endian=little, versions-maven-plugin.version=2.3, user.language=fr, jedis.version=2.9.0, maven-clean-plugin.version=3.0.0, javax-mail.version=1.6.1, maven-surefire-plugin.version=2.21.0, javax-annotation.version=1.3.2, env.LC_PAPER=fr_FR.UTF-8, env.SUDO_UID=1000, mysql.version=5.1.46, classmate.version=1.3.4, jaybird.version=3.0.4, antlr2.version=2.7.7, selenium.version=3.9.1, glassfish-el.version=3.0.0, project.build.sourceEncoding=UTF-8, jooq.version=3.10.7, java.vendor.url.bug=http://bugreport.java.com/bugreport/, user.dir=/home/did/Dev/sandbox/_SPRING/slow-response, ehcache.version=2.10.4, junit-jupiter.version=5.1.1, java.vm.version=10.0.1+10-Ubuntu-3ubuntu1, maven-eclipse-plugin.version=2.10, spring-session-bom.version=Apple-SR2}
    [INFO] Using 'UTF-8' encoding to copy filtered resources.
    [DEBUG] resource with targetPath null
    directory /home/did/Dev/sandbox/_SPRING/slow-response/src/main/resources
    excludes []
    includes [**/application*.yml, **/application*.yaml, **/application*.properties]
    [DEBUG] ignoreDelta true
    [INFO] Copying 1 resource
    [DEBUG] Copying file application.yml
    [DEBUG] file application.yml has a filtered file extension
    [DEBUG] filtering /home/did/Dev/sandbox/_SPRING/slow-response/src/main/resources/application.yml to /home/did/Dev/sandbox/_SPRING/slow-response/target/classes/application.yml
    [DEBUG] resource with targetPath null
    directory /home/did/Dev/sandbox/_SPRING/slow-response/src/main/resources
    excludes [**/application*.yml, **/application*.yaml, **/application*.properties]
    includes []
    [DEBUG] ignoreDelta true
    [INFO] Copying 1 resource
    [DEBUG] Copying file log4j.properties
    [DEBUG] file log4j.properties has a filtered file extension
    [DEBUG] copy /home/did/Dev/sandbox/_SPRING/slow-response/src/main/resources/log4j.properties to /home/did/Dev/sandbox/_SPRING/slow-response/target/classes/log4j.properties
    [DEBUG] no use filter components
    [INFO] 
    [INFO] --- maven-compiler-plugin:3.7.0:compile (default-compile) @ slow-response ---
    [DEBUG] Dependency collection stats: {ConflictMarker.analyzeTime=301547, ConflictMarker.markTime=116458, ConflictMarker.nodeCount=118, ConflictIdSorter.graphTime=147376, ConflictIdSorter.topsortTime=60019, ConflictIdSorter.conflictIdCount=45, ConflictIdSorter.conflictIdCycleCount=0, ConflictResolver.totalTime=1040411, ConflictResolver.conflictItemCount=72, DefaultDependencyCollector.collectTime=68928454, DefaultDependencyCollector.transformTime=1696123}
    [DEBUG] org.apache.maven.plugins:maven-compiler-plugin:jar:3.7.0:
    [DEBUG]    org.apache.maven:maven-plugin-api:jar:3.0:compile
    [DEBUG]       org.apache.maven:maven-model:jar:3.0:compile
    [DEBUG]       org.sonatype.sisu:sisu-inject-plexus:jar:1.4.2:compile
    [DEBUG]          org.sonatype.sisu:sisu-inject-bean:jar:1.4.2:compile
    [DEBUG]             org.sonatype.sisu:sisu-guice:jar:noaop:2.1.7:compile
    [DEBUG]    org.apache.maven:maven-artifact:jar:3.0:compile
    [DEBUG]       org.codehaus.plexus:plexus-utils:jar:2.0.4:compile
    [DEBUG]    org.apache.maven:maven-core:jar:3.0:compile
    [DEBUG]       org.apache.maven:maven-settings:jar:3.0:compile
    [DEBUG]       org.apache.maven:maven-settings-builder:jar:3.0:compile
    [DEBUG]       org.apache.maven:maven-repository-metadata:jar:3.0:compile
    [DEBUG]       org.apache.maven:maven-model-builder:jar:3.0:compile
    [DEBUG]       org.apache.maven:maven-aether-provider:jar:3.0:runtime
    [DEBUG]       org.sonatype.aether:aether-impl:jar:1.7:compile
    [DEBUG]          org.sonatype.aether:aether-spi:jar:1.7:compile
    [DEBUG]       org.sonatype.aether:aether-api:jar:1.7:compile
    [DEBUG]       org.sonatype.aether:aether-util:jar:1.7:compile
    [DEBUG]       org.codehaus.plexus:plexus-interpolation:jar:1.14:compile
    [DEBUG]       org.codehaus.plexus:plexus-classworlds:jar:2.2.3:compile
    [DEBUG]       org.codehaus.plexus:plexus-component-annotations:jar:1.6:compile
    [DEBUG]       org.sonatype.plexus:plexus-sec-dispatcher:jar:1.3:compile
    [DEBUG]          org.sonatype.plexus:plexus-cipher:jar:1.4:compile
    [DEBUG]    org.apache.maven.shared:maven-shared-utils:jar:3.1.0:compile
    [DEBUG]       commons-io:commons-io:jar:2.5:compile
    [DEBUG]    org.apache.maven.shared:maven-shared-incremental:jar:1.1:compile
    [DEBUG]    org.codehaus.plexus:plexus-java:jar:0.9.2:compile
    [DEBUG]       org.ow2.asm:asm:jar:6.0_BETA:compile
    [DEBUG]       com.thoughtworks.qdox:qdox:jar:2.0-M7:compile
    [DEBUG]    org.codehaus.plexus:plexus-compiler-api:jar:2.8.2:compile
    [DEBUG]    org.codehaus.plexus:plexus-compiler-manager:jar:2.8.2:compile
    [DEBUG]    org.codehaus.plexus:plexus-compiler-javac:jar:2.8.2:runtime
    [DEBUG] Created new class realm plugin>org.apache.maven.plugins:maven-compiler-plugin:3.7.0
    [DEBUG] Importing foreign packages into class realm plugin>org.apache.maven.plugins:maven-compiler-plugin:3.7.0
    [DEBUG]   Imported:  < maven.api
    [DEBUG] Populating class realm plugin>org.apache.maven.plugins:maven-compiler-plugin:3.7.0
    [DEBUG]   Included: org.apache.maven.plugins:maven-compiler-plugin:jar:3.7.0
    [DEBUG]   Included: org.sonatype.sisu:sisu-inject-bean:jar:1.4.2
    [DEBUG]   Included: org.sonatype.sisu:sisu-guice:jar:noaop:2.1.7
    [DEBUG]   Included: org.codehaus.plexus:plexus-utils:jar:2.0.4
    [DEBUG]   Included: org.sonatype.aether:aether-util:jar:1.7
    [DEBUG]   Included: org.codehaus.plexus:plexus-interpolation:jar:1.14
    [DEBUG]   Included: org.codehaus.plexus:plexus-component-annotations:jar:1.6
    [DEBUG]   Included: org.sonatype.plexus:plexus-sec-dispatcher:jar:1.3
    [DEBUG]   Included: org.sonatype.plexus:plexus-cipher:jar:1.4
    [DEBUG]   Included: org.apache.maven.shared:maven-shared-utils:jar:3.1.0
    [DEBUG]   Included: commons-io:commons-io:jar:2.5
    [DEBUG]   Included: org.apache.maven.shared:maven-shared-incremental:jar:1.1
    [DEBUG]   Included: org.codehaus.plexus:plexus-java:jar:0.9.2
    [DEBUG]   Included: org.ow2.asm:asm:jar:6.0_BETA
    [DEBUG]   Included: com.thoughtworks.qdox:qdox:jar:2.0-M7
    [DEBUG]   Included: org.codehaus.plexus:plexus-compiler-api:jar:2.8.2
    [DEBUG]   Included: org.codehaus.plexus:plexus-compiler-manager:jar:2.8.2
    [DEBUG]   Included: org.codehaus.plexus:plexus-compiler-javac:jar:2.8.2
    [DEBUG] Configuring mojo org.apache.maven.plugins:maven-compiler-plugin:3.7.0:compile from plugin realm ClassRealm[plugin>org.apache.maven.plugins:maven-compiler-plugin:3.7.0, parent: jdk.internal.loader.ClassLoaders$AppClassLoader@1de0aca6]
    [DEBUG] Configuring mojo 'org.apache.maven.plugins:maven-compiler-plugin:3.7.0:compile' with basic configurator -->
    [DEBUG]   (f) basedir = /home/did/Dev/sandbox/_SPRING/slow-response
    [DEBUG]   (f) buildDirectory = /home/did/Dev/sandbox/_SPRING/slow-response/target
    [DEBUG]   (f) compilePath = [/home/did/Dev/sandbox/_SPRING/slow-response/target/classes, /root/.m2/repository/org/springframework/boot/spring-boot-starter-web/2.0.2.RELEASE/spring-boot-starter-web-2.0.2.RELEASE.jar, /root/.m2/repository/org/springframework/boot/spring-boot-starter/2.0.2.RELEASE/spring-boot-starter-2.0.2.RELEASE.jar, /root/.m2/repository/org/springframework/boot/spring-boot/2.0.2.RELEASE/spring-boot-2.0.2.RELEASE.jar, /root/.m2/repository/org/springframework/boot/spring-boot-autoconfigure/2.0.2.RELEASE/spring-boot-autoconfigure-2.0.2.RELEASE.jar, /root/.m2/repository/org/springframework/boot/spring-boot-starter-logging/2.0.2.RELEASE/spring-boot-starter-logging-2.0.2.RELEASE.jar, /root/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar, /root/.m2/repository/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar, /root/.m2/repository/org/apache/logging/log4j/log4j-to-slf4j/2.10.0/log4j-to-slf4j-2.10.0.jar, /root/.m2/repository/org/apache/logging/log4j/log4j-api/2.10.0/log4j-api-2.10.0.jar, /root/.m2/repository/org/slf4j/jul-to-slf4j/1.7.25/jul-to-slf4j-1.7.25.jar, /root/.m2/repository/javax/annotation/javax.annotation-api/1.3.2/javax.annotation-api-1.3.2.jar, /root/.m2/repository/org/springframework/boot/spring-boot-starter-json/2.0.2.RELEASE/spring-boot-starter-json-2.0.2.RELEASE.jar, /root/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.9.5/jackson-databind-2.9.5.jar, /root/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.9.0/jackson-annotations-2.9.0.jar, /root/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.9.5/jackson-core-2.9.5.jar, /root/.m2/repository/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.9.5/jackson-datatype-jdk8-2.9.5.jar, /root/.m2/repository/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.9.5/jackson-datatype-jsr310-2.9.5.jar, /root/.m2/repository/com/fasterxml/jackson/module/jackson-module-parameter-names/2.9.5/jackson-module-parameter-names-2.9.5.jar, /root/.m2/repository/org/springframework/boot/spring-boot-starter-tomcat/2.0.2.RELEASE/spring-boot-starter-tomcat-2.0.2.RELEASE.jar, /root/.m2/repository/org/apache/tomcat/embed/tomcat-embed-core/8.5.31/tomcat-embed-core-8.5.31.jar, /root/.m2/repository/org/apache/tomcat/embed/tomcat-embed-el/8.5.31/tomcat-embed-el-8.5.31.jar, /root/.m2/repository/org/apache/tomcat/embed/tomcat-embed-websocket/8.5.31/tomcat-embed-websocket-8.5.31.jar, /root/.m2/repository/org/hibernate/validator/hibernate-validator/6.0.9.Final/hibernate-validator-6.0.9.Final.jar, /root/.m2/repository/javax/validation/validation-api/2.0.1.Final/validation-api-2.0.1.Final.jar, /root/.m2/repository/org/jboss/logging/jboss-logging/3.3.2.Final/jboss-logging-3.3.2.Final.jar, /root/.m2/repository/com/fasterxml/classmate/1.3.4/classmate-1.3.4.jar, /root/.m2/repository/org/springframework/spring-web/5.0.6.RELEASE/spring-web-5.0.6.RELEASE.jar, /root/.m2/repository/org/springframework/spring-beans/5.0.6.RELEASE/spring-beans-5.0.6.RELEASE.jar, /root/.m2/repository/org/springframework/spring-webmvc/5.0.6.RELEASE/spring-webmvc-5.0.6.RELEASE.jar, /root/.m2/repository/org/springframework/spring-aop/5.0.6.RELEASE/spring-aop-5.0.6.RELEASE.jar, /root/.m2/repository/org/springframework/spring-context/5.0.6.RELEASE/spring-context-5.0.6.RELEASE.jar, /root/.m2/repository/org/springframework/spring-expression/5.0.6.RELEASE/spring-expression-5.0.6.RELEASE.jar, /root/.m2/repository/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25.jar, /root/.m2/repository/org/springframework/spring-core/5.0.6.RELEASE/spring-core-5.0.6.RELEASE.jar, /root/.m2/repository/org/springframework/spring-jcl/5.0.6.RELEASE/spring-jcl-5.0.6.RELEASE.jar, /root/.m2/repository/org/projectlombok/lombok/1.18.0/lombok-1.18.0.jar]
    [DEBUG]   (f) compileSourceRoots = [/home/did/Dev/sandbox/_SPRING/slow-response/src/main/java]
    [DEBUG]   (f) compilerId = javac
    [DEBUG]   (f) debug = true
    [DEBUG]   (f) encoding = UTF-8
    [DEBUG]   (f) failOnError = true
    [DEBUG]   (f) failOnWarning = false
    [DEBUG]   (f) forceJavacCompilerUse = false
    [DEBUG]   (f) fork = false
    [DEBUG]   (f) generatedSourcesDirectory = /home/did/Dev/sandbox/_SPRING/slow-response/target/generated-sources/annotations
    [DEBUG]   (f) mojoExecution = org.apache.maven.plugins:maven-compiler-plugin:3.7.0:compile {execution: default-compile}
    [DEBUG]   (f) optimize = false
    [DEBUG]   (f) outputDirectory = /home/did/Dev/sandbox/_SPRING/slow-response/target/classes
    [DEBUG]   (f) parameters = true
    [DEBUG]   (f) project = MavenProject: com.mydomain.sandbox:slow-response:0.0.1-SNAPSHOT @ /home/did/Dev/sandbox/_SPRING/slow-response/pom.xml
    [DEBUG]   (f) projectArtifact = com.mydomain.sandbox:slow-response:jar:0.0.1-SNAPSHOT
    [DEBUG]   (f) session = org.apache.maven.execution.MavenSession@4dc8c0ea
    [DEBUG]   (f) showDeprecation = false
    [DEBUG]   (f) showWarnings = false
    [DEBUG]   (f) skipMultiThreadWarning = false
    [DEBUG]   (f) source = 10
    [DEBUG]   (f) staleMillis = 0
    [DEBUG]   (f) target = 10
    [DEBUG]   (f) useIncrementalCompilation = true
    [DEBUG]   (f) verbose = false
    [DEBUG] -- end configuration --
    [DEBUG] Using compiler 'javac'.
    [DEBUG] Adding /home/did/Dev/sandbox/_SPRING/slow-response/target/generated-sources/annotations to compile source roots:
      /home/did/Dev/sandbox/_SPRING/slow-response/src/main/java
    [DEBUG] New compile source roots:
      /home/did/Dev/sandbox/_SPRING/slow-response/src/main/java
      /home/did/Dev/sandbox/_SPRING/slow-response/target/generated-sources/annotations
    [DEBUG] CompilerReuseStrategy: reuseCreated
    [DEBUG] useIncrementalCompilation enabled
    [INFO] Nothing to compile - all classes are up to date
    [INFO] 
    [INFO] --- jib-maven-plugin:0.9.7:build (default-cli) @ slow-response ---
    [DEBUG] Dependency collection stats: {ConflictMarker.analyzeTime=372573, ConflictMarker.markTime=121075, ConflictMarker.nodeCount=106, ConflictIdSorter.graphTime=103333, ConflictIdSorter.topsortTime=60644, ConflictIdSorter.conflictIdCount=50, ConflictIdSorter.conflictIdCycleCount=0, ConflictResolver.totalTime=2111185, ConflictResolver.conflictItemCount=103, DefaultDependencyCollector.collectTime=166811815, DefaultDependencyCollector.transformTime=2805228}
    [DEBUG] com.google.cloud.tools:jib-maven-plugin:jar:0.9.7:
    [DEBUG]    com.google.http-client:google-http-client:jar:1.23.0:compile
    [DEBUG]       com.google.code.findbugs:jsr305:jar:1.3.9:compile
    [DEBUG]       org.apache.httpcomponents:httpclient:jar:4.0.1:compile
    [DEBUG]          org.apache.httpcomponents:httpcore:jar:4.0.1:compile
    [DEBUG]          commons-logging:commons-logging:jar:1.1.1:compile
    [DEBUG]          commons-codec:commons-codec:jar:1.3:compile
    [DEBUG]    org.apache.commons:commons-compress:jar:1.17:compile
    [DEBUG]    com.google.guava:guava:jar:23.5-jre:compile
    [DEBUG]       org.checkerframework:checker-qual:jar:2.0.0:compile
    [DEBUG]       com.google.errorprone:error_prone_annotations:jar:2.0.18:compile
    [DEBUG]       com.google.j2objc:j2objc-annotations:jar:1.1:compile
    [DEBUG]       org.codehaus.mojo:animal-sniffer-annotations:jar:1.14:compile
    [DEBUG]    com.fasterxml.jackson.core:jackson-databind:jar:2.9.6:compile
    [DEBUG]       com.fasterxml.jackson.core:jackson-annotations:jar:2.9.0:compile
    [DEBUG]       com.fasterxml.jackson.core:jackson-core:jar:2.9.6:compile
    [DEBUG]    org.slf4j:slf4j-api:jar:1.7.25:compile
    [DEBUG]    org.javassist:javassist:jar:3.22.0-GA:compile
    [DEBUG]    org.apache.maven:maven-plugin-api:jar:3.5.2:compile
    [DEBUG]       org.apache.maven:maven-model:jar:3.5.2:compile
    [DEBUG]       org.apache.maven:maven-artifact:jar:3.5.2:compile
    [DEBUG]       org.eclipse.sisu:org.eclipse.sisu.plexus:jar:0.3.3:compile
    [DEBUG]          javax.enterprise:cdi-api:jar:1.0:compile
    [DEBUG]             javax.annotation:jsr250-api:jar:1.0:compile
    [DEBUG]       org.codehaus.plexus:plexus-utils:jar:3.1.0:compile
    [DEBUG]       org.codehaus.plexus:plexus-classworlds:jar:2.5.2:compile
    [DEBUG]    org.apache.maven:maven-core:jar:3.5.2:compile
    [DEBUG]       org.apache.maven:maven-settings:jar:3.5.2:compile
    [DEBUG]       org.apache.maven:maven-settings-builder:jar:3.5.2:compile
    [DEBUG]          org.codehaus.plexus:plexus-interpolation:jar:1.24:compile
    [DEBUG]          org.sonatype.plexus:plexus-sec-dispatcher:jar:1.4:compile
    [DEBUG]             org.sonatype.plexus:plexus-cipher:jar:1.4:compile
    [DEBUG]       org.apache.maven:maven-builder-support:jar:3.5.2:compile
    [DEBUG]       org.apache.maven:maven-repository-metadata:jar:3.5.2:compile
    [DEBUG]       org.apache.maven:maven-model-builder:jar:3.5.2:compile
    [DEBUG]       org.apache.maven:maven-resolver-provider:jar:3.5.2:compile
    [DEBUG]       org.apache.maven.resolver:maven-resolver-impl:jar:1.1.0:compile
    [DEBUG]       org.apache.maven.resolver:maven-resolver-api:jar:1.1.0:compile
    [DEBUG]       org.apache.maven.resolver:maven-resolver-spi:jar:1.1.0:compile
    [DEBUG]       org.apache.maven.resolver:maven-resolver-util:jar:1.1.0:compile
    [DEBUG]       org.apache.maven.shared:maven-shared-utils:jar:3.1.0:compile
    [DEBUG]          commons-io:commons-io:jar:2.5:compile
    [DEBUG]       org.eclipse.sisu:org.eclipse.sisu.inject:jar:0.3.3:compile
    [DEBUG]       com.google.inject:guice:jar:no_aop:4.0:compile
    [DEBUG]          aopalliance:aopalliance:jar:1.0:compile
    [DEBUG]       javax.inject:javax.inject:jar:1:compile
    [DEBUG]       org.codehaus.plexus:plexus-component-annotations:jar:1.7.1:compile
    [DEBUG]       org.apache.commons:commons-lang3:jar:3.5:compile
    [DEBUG]    org.apache.maven.shared:maven-verifier:jar:1.6:compile
    [DEBUG]       junit:junit:jar:3.8.2:compile
    [DEBUG] Created new class realm plugin>com.google.cloud.tools:jib-maven-plugin:0.9.7
    [DEBUG] Importing foreign packages into class realm plugin>com.google.cloud.tools:jib-maven-plugin:0.9.7
    [DEBUG]   Imported:  < maven.api
    [DEBUG] Populating class realm plugin>com.google.cloud.tools:jib-maven-plugin:0.9.7
    [DEBUG]   Included: com.google.cloud.tools:jib-maven-plugin:jar:0.9.7
    [DEBUG]   Included: com.google.http-client:google-http-client:jar:1.23.0
    [DEBUG]   Included: com.google.code.findbugs:jsr305:jar:1.3.9
    [DEBUG]   Included: org.apache.httpcomponents:httpclient:jar:4.0.1
    [DEBUG]   Included: org.apache.httpcomponents:httpcore:jar:4.0.1
    [DEBUG]   Included: commons-logging:commons-logging:jar:1.1.1
    [DEBUG]   Included: commons-codec:commons-codec:jar:1.3
    [DEBUG]   Included: org.apache.commons:commons-compress:jar:1.17
    [DEBUG]   Included: com.google.guava:guava:jar:23.5-jre
    [DEBUG]   Included: org.checkerframework:checker-qual:jar:2.0.0
    [DEBUG]   Included: com.google.errorprone:error_prone_annotations:jar:2.0.18
    [DEBUG]   Included: com.google.j2objc:j2objc-annotations:jar:1.1
    [DEBUG]   Included: org.codehaus.mojo:animal-sniffer-annotations:jar:1.14
    [DEBUG]   Included: com.fasterxml.jackson.core:jackson-databind:jar:2.9.6
    [DEBUG]   Included: com.fasterxml.jackson.core:jackson-annotations:jar:2.9.0
    [DEBUG]   Included: com.fasterxml.jackson.core:jackson-core:jar:2.9.6
    [DEBUG]   Included: org.javassist:javassist:jar:3.22.0-GA
    [DEBUG]   Included: javax.enterprise:cdi-api:jar:1.0
    [DEBUG]   Included: org.codehaus.plexus:plexus-utils:jar:3.1.0
    [DEBUG]   Included: org.codehaus.plexus:plexus-interpolation:jar:1.24
    [DEBUG]   Included: org.sonatype.plexus:plexus-sec-dispatcher:jar:1.4
    [DEBUG]   Included: org.sonatype.plexus:plexus-cipher:jar:1.4
    [DEBUG]   Included: org.apache.maven:maven-builder-support:jar:3.5.2
    [DEBUG]   Included: org.apache.maven.resolver:maven-resolver-util:jar:1.1.0
    [DEBUG]   Included: org.apache.maven.shared:maven-shared-utils:jar:3.1.0
    [DEBUG]   Included: commons-io:commons-io:jar:2.5
    [DEBUG]   Included: org.eclipse.sisu:org.eclipse.sisu.inject:jar:0.3.3
    [DEBUG]   Included: com.google.inject:guice:jar:no_aop:4.0
    [DEBUG]   Included: aopalliance:aopalliance:jar:1.0
    [DEBUG]   Included: org.codehaus.plexus:plexus-component-annotations:jar:1.7.1
    [DEBUG]   Included: org.apache.commons:commons-lang3:jar:3.5
    [DEBUG]   Included: org.apache.maven.shared:maven-verifier:jar:1.6
    [DEBUG]   Included: junit:junit:jar:3.8.2
    [DEBUG] Configuring mojo com.google.cloud.tools:jib-maven-plugin:0.9.7:build from plugin realm ClassRealm[plugin>com.google.cloud.tools:jib-maven-plugin:0.9.7, parent: jdk.internal.loader.ClassLoaders$AppClassLoader@1de0aca6]
    [DEBUG] Configuring mojo 'com.google.cloud.tools:jib-maven-plugin:0.9.7:build' with basic configurator -->
    [DEBUG]   (f) allowInsecureRegistries = false
    [DEBUG]   (f) extraDirectory = /home/did/Dev/sandbox/_SPRING/slow-response/src/main/jib
    [DEBUG]   (f) project = MavenProject: com.mydomain.sandbox:slow-response:0.0.1-SNAPSHOT @ /home/did/Dev/sandbox/_SPRING/slow-response/pom.xml
    [DEBUG]   (f) session = org.apache.maven.execution.MavenSession@4dc8c0ea
    [DEBUG]   (f) image = gitlab.mydomain.com:4567/sandbox/slow-response
    [DEBUG]   (f) to = com.google.cloud.tools.jib.maven.JibPluginConfiguration$ToConfiguration@64d4f7c7
    [DEBUG]   (f) useOnlyProjectCache = false
    [DEBUG] -- end configuration --
    [DEBUG] Searching for main class... Add a 'mainClass' configuration to 'jib-maven-plugin' to improve build speed.
    [DEBUG] Could not find a valid main class specified in 'maven-jar-plugin'; attempting to infer main class.
    [WARNING] Base image 'gcr.io/distroless/java' does not use a specific image digest - build may not be reproducible
    [INFO] 
    [INFO] Containerizing application to gitlab.mydomain.com:4567/sandbox/slow-response...
    [DEBUG] Containerizing application with the following files:
    [DEBUG]         Classes:
    [DEBUG]                 /home/did/Dev/sandbox/_SPRING/slow-response/target/classes/net
    [DEBUG]         Resources:
    [DEBUG]                 /home/did/Dev/sandbox/_SPRING/slow-response/target/classes/application.yml
    [DEBUG]                 /home/did/Dev/sandbox/_SPRING/slow-response/target/classes/log4j.properties
    [DEBUG]         Dependencies:
    [DEBUG]                 /root/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar
    [DEBUG]                 /root/.m2/repository/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar
    [DEBUG]                 /root/.m2/repository/com/fasterxml/classmate/1.3.4/classmate-1.3.4.jar
    [DEBUG]                 /root/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.9.0/jackson-annotations-2.9.0.jar
    [DEBUG]                 /root/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.9.5/jackson-core-2.9.5.jar
    [DEBUG]                 /root/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.9.5/jackson-databind-2.9.5.jar
    [DEBUG]                 /root/.m2/repository/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.9.5/jackson-datatype-jdk8-2.9.5.jar
    [DEBUG]                 /root/.m2/repository/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.9.5/jackson-datatype-jsr310-2.9.5.jar
    [DEBUG]                 /root/.m2/repository/com/fasterxml/jackson/module/jackson-module-parameter-names/2.9.5/jackson-module-parameter-names-2.9.5.jar
    [DEBUG]                 /root/.m2/repository/javax/annotation/javax.annotation-api/1.3.2/javax.annotation-api-1.3.2.jar
    [DEBUG]                 /root/.m2/repository/javax/validation/validation-api/2.0.1.Final/validation-api-2.0.1.Final.jar
    [DEBUG]                 /root/.m2/repository/org/apache/logging/log4j/log4j-api/2.10.0/log4j-api-2.10.0.jar
    [DEBUG]                 /root/.m2/repository/org/apache/logging/log4j/log4j-to-slf4j/2.10.0/log4j-to-slf4j-2.10.0.jar
    [DEBUG]                 /root/.m2/repository/org/apache/tomcat/embed/tomcat-embed-core/8.5.31/tomcat-embed-core-8.5.31.jar
    [DEBUG]                 /root/.m2/repository/org/apache/tomcat/embed/tomcat-embed-el/8.5.31/tomcat-embed-el-8.5.31.jar
    [DEBUG]                 /root/.m2/repository/org/apache/tomcat/embed/tomcat-embed-websocket/8.5.31/tomcat-embed-websocket-8.5.31.jar
    [DEBUG]                 /root/.m2/repository/org/hibernate/validator/hibernate-validator/6.0.9.Final/hibernate-validator-6.0.9.Final.jar
    [DEBUG]                 /root/.m2/repository/org/jboss/logging/jboss-logging/3.3.2.Final/jboss-logging-3.3.2.Final.jar
    [DEBUG]                 /root/.m2/repository/org/projectlombok/lombok/1.18.0/lombok-1.18.0.jar
    [DEBUG]                 /root/.m2/repository/org/slf4j/jul-to-slf4j/1.7.25/jul-to-slf4j-1.7.25.jar
    [DEBUG]                 /root/.m2/repository/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25.jar
    [DEBUG]                 /root/.m2/repository/org/springframework/boot/spring-boot-autoconfigure/2.0.2.RELEASE/spring-boot-autoconfigure-2.0.2.RELEASE.jar
    [DEBUG]                 /root/.m2/repository/org/springframework/boot/spring-boot-starter-json/2.0.2.RELEASE/spring-boot-starter-json-2.0.2.RELEASE.jar
    [DEBUG]                 /root/.m2/repository/org/springframework/boot/spring-boot-starter-logging/2.0.2.RELEASE/spring-boot-starter-logging-2.0.2.RELEASE.jar
    [DEBUG]                 /root/.m2/repository/org/springframework/boot/spring-boot-starter-tomcat/2.0.2.RELEASE/spring-boot-starter-tomcat-2.0.2.RELEASE.jar
    [DEBUG]                 /root/.m2/repository/org/springframework/boot/spring-boot-starter-web/2.0.2.RELEASE/spring-boot-starter-web-2.0.2.RELEASE.jar
    [DEBUG]                 /root/.m2/repository/org/springframework/boot/spring-boot-starter/2.0.2.RELEASE/spring-boot-starter-2.0.2.RELEASE.jar
    [DEBUG]                 /root/.m2/repository/org/springframework/boot/spring-boot/2.0.2.RELEASE/spring-boot-2.0.2.RELEASE.jar
    [DEBUG]                 /root/.m2/repository/org/springframework/spring-aop/5.0.6.RELEASE/spring-aop-5.0.6.RELEASE.jar
    [DEBUG]                 /root/.m2/repository/org/springframework/spring-beans/5.0.6.RELEASE/spring-beans-5.0.6.RELEASE.jar
    [DEBUG]                 /root/.m2/repository/org/springframework/spring-context/5.0.6.RELEASE/spring-context-5.0.6.RELEASE.jar
    [DEBUG]                 /root/.m2/repository/org/springframework/spring-core/5.0.6.RELEASE/spring-core-5.0.6.RELEASE.jar
    [DEBUG]                 /root/.m2/repository/org/springframework/spring-expression/5.0.6.RELEASE/spring-expression-5.0.6.RELEASE.jar
    [DEBUG]                 /root/.m2/repository/org/springframework/spring-jcl/5.0.6.RELEASE/spring-jcl-5.0.6.RELEASE.jar
    [DEBUG]                 /root/.m2/repository/org/springframework/spring-web/5.0.6.RELEASE/spring-web-5.0.6.RELEASE.jar
    [DEBUG]                 /root/.m2/repository/org/springframework/spring-webmvc/5.0.6.RELEASE/spring-webmvc-5.0.6.RELEASE.jar
    [DEBUG]                 /root/.m2/repository/org/yaml/snakeyaml/1.19/snakeyaml-1.19.jar
    [INFO] 
    [DEBUG] TIMING  Building and pushing image
    [DEBUG] RUNNING Building and pushing image
    [INFO] Retrieving registry credentials for gitlab.mydomain.com:4567...
    [DEBUG] TIMING  Retrieving registry credentials for gitlab.mydomain.com:4567
    [DEBUG] RUNNING Retrieving registry credentials for gitlab.mydomain.com:4567
    [DEBUG] No credentials could be retrieved for registry gitlab.mydomain.com:4567
    [DEBUG] TIMED   Retrieving registry credentials for gitlab.mydomain.com:4567 : 3.452 ms
    [DEBUG] Retrieving registry credentials for gitlab.mydomain.com:4567 : 3.452 ms
    [DEBUG] TIMING  Authenticating with push to gitlab.mydomain.com:4567
    [DEBUG] RUNNING Authenticating with push to gitlab.mydomain.com:4567
    [INFO] Getting base image gcr.io/distroless/java...
    [DEBUG] TIMING  Pulling base image manifest
    [DEBUG] RUNNING Pulling base image manifest
    [DEBUG] TIMING  Building application layers
    [DEBUG] RUNNING Building application layers
    [INFO] Building dependencies layer...
    [DEBUG] TIMING  Building dependencies layer
    [DEBUG] RUNNING Building dependencies layer
    [INFO] Building resources layer...
    [DEBUG] TIMING  Building resources layer
    [DEBUG] RUNNING Building resources layer
    [DEBUG] TIMED   Building application layers : 1.9 ms
    [INFO] Building classes layer...
    [DEBUG] Building application layers : 1.9 ms
    [DEBUG] TIMING  Building classes layer
    [DEBUG] RUNNING Building classes layer
    [DEBUG] TIMING  Setting up to push layers
    [DEBUG] RUNNING Setting up to push layers
    [DEBUG] TIMED   Setting up to push layers : 2.256 ms
    [DEBUG] Setting up to push layers : 2.256 ms
    [DEBUG] TIMED   Building classes layer : 13.573 ms
    [DEBUG] Building classes layer : 13.573 ms
    [DEBUG] TIMED   Building dependencies layer : 19.3 ms
    [DEBUG] Building dependencies layer : 19.3 ms
    [DEBUG] Building resources layer built sha256:d513ff2660b3365e501814478a76f5766347c5009549645fe318fe41c43dc500
    [DEBUG] TIMED   Building resources layer : 43.604 ms
    [DEBUG] Building resources layer : 43.604 ms
    [DEBUG] TIMED   Authenticating with push to gitlab.mydomain.com:4567 : 788.472 ms
    [DEBUG] Authenticating with push to gitlab.mydomain.com:4567 : 788.472 ms
    [DEBUG] TIMED   Pulling base image manifest : 1155.214 ms
    [DEBUG] Pulling base image manifest : 1155.214 ms
    [DEBUG] TIMING  Setting up base image caching
    [DEBUG] RUNNING Setting up base image caching
    [DEBUG] TIMED   Setting up base image caching : 0.872 ms
    [DEBUG] Setting up base image caching : 0.872 ms
    [DEBUG] TIMING  Pulling base image layer sha256:8f125ded1b483229a567e48eece98cc8867c2bee55fb73e9cd65ceecc448b7c7
    [DEBUG] TIMING  Setting up to push layers
    [DEBUG] RUNNING Setting up to push layers
    [DEBUG] TIMED   Setting up to push layers : 0.112 ms
    [DEBUG] Setting up to push layers : 0.112 ms
    [DEBUG] TIMING  Pulling base image layer sha256:e55f91cfcc4c37eae015b13ca9634aa854a6370232eb6188586e6434d3305774
    [DEBUG] RUNNING Pulling base image layer sha256:e55f91cfcc4c37eae015b13ca9634aa854a6370232eb6188586e6434d3305774
    [DEBUG] TIMED   Pulling base image layer sha256:e55f91cfcc4c37eae015b13ca9634aa854a6370232eb6188586e6434d3305774 : 0.44 ms
    [DEBUG] Pulling base image layer sha256:e55f91cfcc4c37eae015b13ca9634aa854a6370232eb6188586e6434d3305774 : 0.44 ms
    [DEBUG] TIMING  Pulling base image layer sha256:ba7c544469e514f1a9a4dec59ab640540d50992b288adbb34a1a63c45bf19a24
    [DEBUG] RUNNING Pulling base image layer sha256:ba7c544469e514f1a9a4dec59ab640540d50992b288adbb34a1a63c45bf19a24
    [DEBUG] TIMED   Pulling base image layer sha256:ba7c544469e514f1a9a4dec59ab640540d50992b288adbb34a1a63c45bf19a24 : 1.611 ms
    [DEBUG] Pulling base image layer sha256:ba7c544469e514f1a9a4dec59ab640540d50992b288adbb34a1a63c45bf19a24 : 1.611 ms
    [DEBUG] RUNNING Pulling base image layer sha256:8f125ded1b483229a567e48eece98cc8867c2bee55fb73e9cd65ceecc448b7c7
    [DEBUG] TIMED   Pulling base image layer sha256:8f125ded1b483229a567e48eece98cc8867c2bee55fb73e9cd65ceecc448b7c7 : 1.906 ms
    [DEBUG] Pulling base image layer sha256:8f125ded1b483229a567e48eece98cc8867c2bee55fb73e9cd65ceecc448b7c7 : 1.906 ms
    [DEBUG] TIMING  Building container configuration
    [DEBUG] RUNNING Building container configuration
    [DEBUG] TIMED   Building container configuration : 0.345 ms
    [DEBUG] Building container configuration : 0.345 ms
    [INFO] Finalizing...
    [DEBUG] TIMED   Building and pushing image : 1360.335 ms
    [DEBUG] Building and pushing image : 1360.335 ms
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD FAILURE
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 2.794 s
    [INFO] Finished at: 2018-07-31T15:51:27+02:00
    [INFO] Final Memory: 23M/94M
    [INFO] ------------------------------------------------------------------------
    [ERROR] Failed to execute goal com.google.cloud.tools:jib-maven-plugin:0.9.7:build (default-cli) on project slow-response: Build image failed, perhaps you should make sure you have permissions for gitlab.mydomain.com:4567/sandbox/slow-response: Unauthorized for gitlab.mydomain.com:4567/sandbox/slow-response: 403 Forbidden
    [ERROR] {"errors":[{"code":"DENIED","message":"access forbidden"}],"http_status":403}
    [ERROR] -> [Help 1]
    org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.google.cloud.tools:jib-maven-plugin:0.9.7:build (default-cli) on project slow-response: Build image failed, perhaps you should make sure you have permissions for gitlab.mydomain.com:4567/sandbox/slow-response
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:213)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
        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:309)
        at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:194)
        at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:107)
        at org.apache.maven.cli.MavenCli.execute (MavenCli.java:955)
        at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:290)
        at org.apache.maven.cli.MavenCli.main (MavenCli.java:194)
        at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
        at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
        at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke (Method.java:564)
        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)
    Caused by: org.apache.maven.plugin.MojoExecutionException: Build image failed, perhaps you should make sure you have permissions for gitlab.mydomain.com:4567/sandbox/slow-response
        at com.google.cloud.tools.jib.maven.BuildImageMojo.execute (BuildImageMojo.java:165)
        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:154)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
        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:309)
        at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:194)
        at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:107)
        at org.apache.maven.cli.MavenCli.execute (MavenCli.java:955)
        at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:290)
        at org.apache.maven.cli.MavenCli.main (MavenCli.java:194)
        at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
        at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
        at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke (Method.java:564)
        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)
    Caused by: com.google.cloud.tools.jib.registry.RegistryUnauthorizedException: Unauthorized for gitlab.mydomain.com:4567/sandbox/slow-response
        at com.google.cloud.tools.jib.frontend.BuildStepsRunner.build (BuildStepsRunner.java:246)
        at com.google.cloud.tools.jib.maven.BuildImageMojo.execute (BuildImageMojo.java:161)
        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:154)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
        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:309)
        at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:194)
        at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:107)
        at org.apache.maven.cli.MavenCli.execute (MavenCli.java:955)
        at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:290)
        at org.apache.maven.cli.MavenCli.main (MavenCli.java:194)
        at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
        at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
        at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke (Method.java:564)
        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)
    Caused by: com.google.api.client.http.HttpResponseException: 403 Forbidden
    {"errors":[{"code":"DENIED","message":"access forbidden"}],"http_status":403}
        at com.google.api.client.http.HttpRequest.execute (HttpRequest.java:1070)
        at com.google.cloud.tools.jib.http.Connection.send (Connection.java:130)
        at com.google.cloud.tools.jib.http.Connection.get (Connection.java:87)
        at com.google.cloud.tools.jib.registry.RegistryAuthenticator.authenticate (RegistryAuthenticator.java:247)
        at com.google.cloud.tools.jib.registry.RegistryAuthenticator.authenticatePush (RegistryAuthenticator.java:220)
        at com.google.cloud.tools.jib.builder.steps.AuthenticatePushStep.call (AuthenticatePushStep.java:89)
        at com.google.cloud.tools.jib.builder.steps.AuthenticatePushStep.call (AuthenticatePushStep.java:42)
        at com.google.common.util.concurrent.CombinedFuture$CallableInterruptibleTask.runInterruptibly (CombinedFuture.java:181)
        at com.google.common.util.concurrent.InterruptibleTask.run (InterruptibleTask.java:57)
        at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1135)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:635)
        at java.lang.Thread.run (Thread.java:844)
    [ERROR] 
    [ERROR] 
    [ERROR] For more information about the errors and possible solutions, please read the following articles:
    [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
    

    Additional Information: But sudo mvn compile -X com.google.cloud.tools:jib-maven-plugin:0.9.7:dockerBuild Works well. I locally have my image built and I'm able to push it to my private Gitlab Repo.

    And If I don't use sudo I get this error :

    [ERROR] Failed to execute goal com.google.cloud.tools:jib-maven-plugin:0.9.7:build (default-cli) on project slow-response: Build image failed, perhaps you should use a registry that supports HTTPS or set the configuration parameter 'allowInsecureRegistries': Only secure connections are allowed, but tried to reach URL http://gcr.io/v2/distroless/java/manifests/latest -> [Help 1]
    org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.google.cloud.tools:jib-maven-plugin:0.9.7:build (default-cli) on project slow-response: Build image failed, perhaps you should use a registry that supports HTTPS or set the configuration parameter 'allowInsecureRegistries'
    
    

    Thank you for your help.

    p0 
    opened by DidierSchonne 58
  • Building docker image of spring boot

    Building docker image of spring boot

    I have logged in to docker hub through command prompt using docker login. Now I am trying to generate and push image to docker hub using command gradlew jib --image=demo:0.0.1-SNAPSHOT .I am getting error

    Task :jib FAILED
    
    FAILURE: Build failed with an exception.
    
    * What went wrong:
    Execution failed for task ':jib'.
    > com.google.cloud.tools.jib.plugins.common.BuildStepsExecutionException: Build
    image failed, perhaps you should make sure your credentials for 'demo:0.0.1-SNAP
    SHOT' are set up correctly.
    
    opened by nithinkota 53
  • Images created by Jib randomly causes 500 Internal server error in Red Hat Quay

    Images created by Jib randomly causes 500 Internal server error in Red Hat Quay

    Environment:

    • Jib version: 1.5.1
    • Build tool: Maven
    • OS: Linux and Windows

    Description of the issue: Images created by Jib randomly causes 500 Internal server error in Red Hat Quay. This has been reproduced with the HelloWorld example from Jib, but does not happen with images created in any other way than with Jib.

    Expected behavior: Images created by Jib should consistently be accepted by Quay.

    Steps to reproduce:

    1. Download https://github.com/GoogleContainerTools/jib/tree/master/examples/helloworld
    2. Change gcr.io/REPLACE-WITH-YOUR-GCP-PROJECT/image-built-with-jib to QUAY-REGISTRY/image-built-with-jib
    3. Run mvn compile jib:build

    jib-maven-plugin Configuration:

    <configuration>
        <to>
            <image>QUAY-REGISTRY/image-built-with-jib</image>
        </to>
    </configuration>
    

    Log output:

    > [2019-09-13T07:50:47.986Z] [ERROR] Failed to execute goal com.google.cloud.tools:jib-maven-plugin:1.5.1:build (build_docker_image) on project xx: 500 Internal Server Error
    > [2019-09-13T07:50:47.986Z] [ERROR] <html>
    > [2019-09-13T07:50:47.986Z] [ERROR]   <head>
    > [2019-09-13T07:50:47.986Z] [ERROR]     <title>Internal Server Error</title>
    > [2019-09-13T07:50:47.986Z] [ERROR]   </head>
    > [2019-09-13T07:50:47.986Z] [ERROR]   <body>
    > [2019-09-13T07:50:47.986Z] [ERROR]     <h1>Internal Server Error</h1>
    > [2019-09-13T07:50:47.986Z] [ERROR]
    > [2019-09-13T07:50:47.986Z] [ERROR]   </body>
    > [2019-09-13T07:50:47.986Z] [ERROR] </html>
    

    Additional Information: Red Hat's response is that this only happens with Jib-created images and therefore points the finger at Jib.

    Is it possible to get Google and Red Hat to cooperate in finding a solution to this? Red Hat Case #: 02456747

    opened by hbjastad 42
  • Proposal War support with Gradle

    Proposal War support with Gradle

    Towards #431, here's my proposal to support "WAR" project with Jib.

    ~~If the "webAppRoot" is filled, these layers are relocated as following :~~ ~~- "resources" --> webAppRoot/WEB-INF/classes~~ ~~- "classes" --> webAppRoot/WEB-INF/classes~~ ~~- "dependencies" --> webAppRoot/WEB-INF/lib~~ ~~- "snapshot dependencies" --> webAppRoot/WEB-INF/lib~~

    ~~I've created 3 more layers :~~ ~~- "webapp" for JSP files, assets, angular generated files, ...~~ ~~- "meta-inf" for files like "context.xml"~~ ~~- "web-inf" for files like "web.xml", etc...~~

    ~~I'm going to rebase tonight on master to replace my implementation of "entrypoint" with yours.~~

    Upon validation, I will consolidate with more tests, clean-ups and maybe an implementation for the maven plugin.

    I've performed some real life tests with 10 different "Tomcat" projects.~~

    cla: yes 
    opened by CyrilleH 42
  • Premature end of chunk coded message body after upgrading to 3.1.3

    Premature end of chunk coded message body after upgrading to 3.1.3

    Environment:

    • Jib version: 3.1.3
    • Build tool: Gradle 7.1 (using jib plugin 3.1.3)
    • OS: Linux via Gitlab pipelines

    Description of the issue: Upgraded from 3.1.2 to 3.1.3 and now getting an error when pulling an image from GCR

    I/O error for image [eu.gcr.io/***]:
        org.apache.http.ConnectionClosedException
        Premature end of chunk coded message body: closing chunk expected
    I/O error for image [eu.gcr.io/***]:
        org.apache.http.ConnectionClosedException
        Premature end of chunk coded message body: closing chunk expected
    

    This causes it to completely fail

    Expected behavior:

    It would still work the same from 3.1.2

    Steps to reproduce:

    1. Upgrade to 3.1.3 and it breaks

    jib-gradle-plugin Configuration:

    jib {
        from {
            image = "eu.gcr.io/***"
        }
        to {
            image = System.getenv("CONTAINER_IMAGE") ?: "***"
            tags = ["latest", System.getenv("CI_PIPELINE_ID") ?: "dev", System.getenv("CI_COMMIT_SHA") ?: "local"]
        }
        container {
            mainClass = "com.***.Application"
            args = ["server", System.getenv("DROPWIZARD_CONFIG") ?: "development"]
            jvmFlags = [
                "-XX:+UseG1GC",
                "-XX:+UseStringDeduplication",
                "-Dcontrast.dir=/tmp/contrast",
                "-javaagent:contrast.jar",
                "-Dcontrast.assess.sampling.enable=true",
                "-Dcontrast.assess.sampling.baseline=1",
                "-Dcontrast.assess.sampling.request_frequency=1200",
                "-Dcontrast.assess.sampling.window_ms=30000",
            ]
            ports = ["8080", "8081"]
        }
    }
    

    Log output:

    Containerizing application to eu.gcr.io/***, eu.gcr.io/***, eu.gcr.io/***, eu.gcr.io/***...
    Base image 'eu.gcr.io/***' does not use a specific image digest - build may not be reproducible
    Getting manifest for base image eu.gcr.io/***...
    Building dependencies layer...
    Building project dependencies layer...
    Building classes layer...
    Building jvm arg files layer...
    Using Google Application Default Credentials for eu.gcr.io/***
    The base image requires auth. Trying again for eu.gcr.io/***...
    Using Google Application Default Credentials for eu.gcr.io/***
    I/O error for image [eu.gcr.io/***]:
        org.apache.http.ConnectionClosedException
        Premature end of chunk coded message body: closing chunk expected
    I/O error for image [eu.gcr.io/***]:
        org.apache.http.ConnectionClosedException
        Premature end of chunk coded message body: closing chunk expected
    Using base image with digest: ***
    Container entrypoint set to [java, -Xms4g, -Xmx8g, -XX:+UseG1GC, -cp, @/app/jib-classpath-file, ***]
    I/O error for image [eu.gcr.io/***]:
        org.apache.http.ConnectionClosedException
        Premature end of chunk coded message body: closing chunk expected
    FAILURE: Build failed with an exception.
    * What went wrong:
    Execution failed for task ':maintenance:jib'.
    > com.google.cloud.tools.jib.plugins.common.BuildStepsExecutionException: Premature end of chunk coded message body: closing chunk expected
    
    p1 kind/bug 
    opened by rmaclean-ee 40
  • 'MANIFEST_INVALID' when uploading to Artifactory

    'MANIFEST_INVALID' when uploading to Artifactory

    Description of the issue: When running jib as part of a maven goal, I get the following:

    [ERROR] Failed to execute goal com.google.cloud.tools:jib-maven-plugin:0.9.2:build (build-docker-image) on project jengel-service: Build image failed: Tried to push image manifest for $OUR_REGISTRY/sre/jengel-test:jib but failed because: manifest invalid (something went wrong) | If this is a bug, please file an issue at https://github.com/GoogleContainerTools/jib/issues/new: 400 Bad Request
    [ERROR] {"errors":[{"code":"MANIFEST_INVALID","message":"manifest invalid","detail":{"description":"null"}}]}
    

    When looking at the artifactory logs, it seems like the manifest being uploaded is null:

    2018-07-10 19:55:25,650 [http-nio-8081-exec-55] [INFO ] (o.a.e.UploadServiceImpl:360) - Deploy to 'et-docker-local:sre/jengel-test/_uploads/49928209-6f48-451f-8bd3-57a329be6880' Content-Length: unspecified
    2018-07-10 19:55:25,748 [http-nio-8081-exec-66] [INFO ] (o.j.r.d.v.r.h.DockerV2LocalRepoHandler:257) - Deploying docker manifest for repo 'sre/jengel-test' and tag 'jib' into repo 'et-docker-local'
    2018-07-10 19:55:25,761 [http-nio-8081-exec-66] [ERROR] (o.j.r.d.v.r.h.DockerV2LocalRepoHandler:298) - Error uploading manifest: 'null'
    

    Expected behavior: The image should be uploaded to artifactory :D

    Steps to reproduce:

    • Add an artifactory repo as your <to><image> block
    • Execute mvn to publish image
    • Receive error ):

    Environment:

    • Current trying on macOS 10.13.5
    • mvn 3.5.3
    • jib 0.9.2
    • Artifactory 6.0.1

    jib-maven-plugin Configuration:

                        <plugin>
                            <groupId>com.google.cloud.tools</groupId>
                            <artifactId>jib-maven-plugin</artifactId>
                            <version>0.9.2</version>
                            <configuration>
                                <from>
                                    <image>$OUR_REGISTRY/frolvlad/alpine-oraclejdk8:slim</image>
                                </from>
                                <to>
                                    <image> $OUR_REGISTRY/sre/jengel-test:jib</image>
                                </to>
                                <container>
                                    <jvmFlags>
                                        ...
                                    </jvmFlags>
                                    <format>OCI</format>
                                </container>
                            </configuration>
                            <executions>
                                <execution>
                                    <id>build-docker-image</id>
                                    <goals>
                                        <goal>build</goal>
                                    </goals>
                                    <phase>package</phase>
                                </execution>
                            </executions>
                        </plugin>
    

    Log output: See description above for relevant logs

    Additional Information:

    Tried running as well with the -X flag in maven with nothing else extreme helpful. I do actually see part of the image layers in an _uploads folder in artifactory, but no manifest.json like I'd expect from an image. Happy to provide additional information if needed!

    p0 
    opened by jinglejengel 39
  • Make used Gradle SourceSet and Configuration configurable

    Make used Gradle SourceSet and Configuration configurable

    The Jib Gradle plugin is hard-coded to make use of the "main" classpath and "runtime" configuration. It should be possible to specify those two values in the JibExtension to allow customizations:

    • add further libraries to classpath for Docker only.
    • remove libraries from the classpath as they are already available in a base image.
    • change the source set because the projects main "purpose" is not being a docker image, but something else and have docker-related sources of the project in a non-main source set. We have that pattern quite frequently when we build plugins for other system that are then installed as initContainer. So the main artifact of the project would be the "plugin", whereas the initContainer is more a side-thing related to deployment. Currently we are forced to make setup two projects rather than just having two source sets.

    Many/most other Gradle plugins allow to do the same thing to maintain flexiblity of what gets touched by plugin. And effort for allowing that is minimal.

    The ticket is related to https://github.com/GoogleContainerTools/jib/issues/894, but as requested created a ticket on its own. In most cases the changes requested here should be simpler and suffice for developers to allow doing customizations. The other ticket then would allow even more customization at expensve of additional complexity.

    p4 question area/jib-gradle-plugin enhancement 
    opened by remmeier 38
  • Local Changes Requires Docker Hub Auth

    Local Changes Requires Docker Hub Auth

    I just want to make faster local development. At our company we have different cicd pipeline so I shouldn't send new images a hub. If there is a small change I am following next commands to achieve changes. It takes time.

    cd Mgnfcnt-Project;
    rm -rf ./target;
    mvn clean install -DskipTests;
    docker stop Mgnfcnt-Project && docker rm Mgnfcnt-Project && docker rmi mgnfcnt_Mgnfcnt-Project;
    docker-compose up -d Mgnfcnt-Project;
    

    I dont know whether JIB is right solution or not for my problem but using as following:

          <plugin>
            <groupId>com.google.cloud.tools</groupId>
            <artifactId>jib-maven-plugin</artifactId>
            <version>2.1.0</version>
            <configuration>
              <from>
                <image>mgnfcnt_Mgnfcnt-Project:latest</image>
              </from>
              <to>
                <image>mgnfcnt_Mgnfcnt-Project</image>
              </to>
            </configuration>
          </plugin>
    

    But still wants to reach docker hub as gives following error:

    Failed to execute goal com.google.cloud.tools:jib-maven-plugin:2.1.0:build (default-cli) on project Mgnfcnt-Project: Build image failed, perhaps you should make sure your credentials for 'registry-1.docker.io/library/mgnfcnt_Mgnfcnt-Project' are set up correctly. See https://github.com/GoogleContainerTools/jib/blob/master/docs/faq.md#what-should-i-do-when-the-registry-responds-with-unauthorized for help

    Thanks in advance

    opened by mgnfcnt 35
  • Cannot run image running with container generated by jib as non-root in k8s

    Cannot run image running with container generated by jib as non-root in k8s

    Description of the issue: I cannot run the image generated via jib-maven-plugin as nonroot. When attempting to set the securitycontext runasuser as a custom one, it errors as the app cannot find the main class. Only root seems to work, but this is a security issue and I'd rather run the container as a unpriviledged user.

    Expected behavior: set the security context in the k8s deployment as uid 10000 (just an example), and the app thats generated has /app folders owned or at least executable by this uid.

    Steps to reproduce: create a k8s deployment, set securitycontext: runasUser: to custom uid. use a custom jdk image and use that USER uid in the from block of the maven-jib-plugin section in the pom.xml

    Environment:

    jdk image utilized by pom to generate the new image for the java app:

    FROM openjdk:8-jdk-alpine
    
    RUN set -x && \
    	sed -i -e "s/\#networkaddress.cache.ttl=-1/networkaddress.cache.ttl=300/g" -e "s/securerandom.source=file\:\/dev\/random/securerandom.source=file\:\/dev\/\.\/urandom/g" /usr/lib/jvm/java-1.8-openjdk/jre/lib/security/java.security
    
    ENV JAVA_OPTS="-XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap"
    
    RUN addgroup -g 10000 runner && \
        adduser -G runner -D -H -u 10000 runner
    
    USER 10000
    

    jib-maven-plugin Configuration:

    <plugin>
    	        <groupId>com.google.cloud.tools</groupId>
    	        <artifactId>jib-maven-plugin</artifactId>
    	        <version>0.9.7</version>
    	        <configuration>
    	          <from>
    	          	<image>XXXXXXX.dkr.ecr.us-east-1.amazonaws.com/foo:custom-jdk</image>
    	          </from>
    	          <to>
    	            <image>XXXXXXX.dkr.ecr.us-east-1.amazonaws.com/foo:java-app</image>
    	            <credHelper>ecr-login</credHelper>
    	          </to>
    	          <container>
    	          	<ports>
    	          		<port>8080</port>
    	          	</ports>
    	          </container>
    	          <imageFormat>Docker</imageFormat>
    	        </configuration>
    	      </plugin>
    

    Log output: Error: Could not find or load main class com.test.hello.HelloApplication

    Additional Information: the folders that are generated in /app are owned by root. resources is available to all users, but the other 2 are root write and executable only.

    k8s deployment container:

    - name: hello-app
            imagePullPolicy: Always
            securityContext:
              runAsUser: 10000
              allowPrivilegeEscalation: false
            image: XXXXXXX.dkr.ecr.us-east-1.amazonaws.com/foo:java-app
    
    opened by JamesWojewoda 34
  • java.lang.NoSuchMethodError: com.google.common.collect.ImmutableList.builderWithExpectedSize

    java.lang.NoSuchMethodError: com.google.common.collect.ImmutableList.builderWithExpectedSize

    Description of the issue:

    ./gradlew jib fails

    Expected behavior:

    ./gradlew jib works

    Steps to reproduce:

    I added jib to my project and ./gradlew jib is broken.

    Environment:

    • macOS 10.13.5
    • java version 1.8.0_172
    • Gradle 4.8.1

    jib-gradle-plugin Configuration:

    buildscript {
        repositories {
            mavenCentral()
        }
    
        dependencies {
            classpath Plugins.KOTLIN
        }
    }
    
    plugins {
        // https://plugins.gradle.org/plugin/com.google.cloud.tools.jib
        id 'com.google.cloud.tools.jib' version '0.9.6'
    }
    
    apply plugin: 'java'
    apply plugin: 'kotlin'
    
    jib.to.image = 'gcr.io/delta-essence-114723/soseedy'
    
    dependencies {
        compile project(':dataseedingapi')
    
        // https://search.maven.org/#search%7Cga%7C1%7Cg%3A%22io.grpc%22%20a%3A%22grpc-netty%22
        compile 'io.grpc:grpc-netty:1.12.0'
        compile Libs.KOTLIN_STD_LIB
    
        // https://mvnrepository.com/artifact/io.netty/netty-tcnative-boringssl-static
        compile 'io.netty:netty-tcnative-boringssl-static:2.0.8.Final'
    
        testCompile Libs.JUNIT
    }
    
    sourceCompatibility = "1.8"
    targetCompatibility = "1.8"
    
    repositories {
        mavenCentral()
    }
    compileKotlin {
        kotlinOptions {
            jvmTarget = "1.8"
        }
    }
    compileTestKotlin {
        kotlinOptions {
            jvmTarget = "1.8"
        }
    }
    
    task("fatJar", type: Jar) {
        baseName = "${project.name}-all"
        manifest {
            attributes 'Main-Class': 'com.instructure.dataseeding.OutOfProcessServer'
        }
        from { configurations.runtime.collect { it.isDirectory() ? it : zipTree(it) } }
        with jar
    }
    
    

    Log output:

    Gradle stacktrace
    warning: Base image 'gcr.io/distroless/java' does not use a specific image digest - build may not be reproducible
    
    Containerizing application to gcr.io/delta-essence-114723/soseedy...
    
    Retrieving registry credentials for gcr.io...
    Getting base image gcr.io/distroless/java...
    Building dependencies layer...
    Building resources layer...
    Building classes layer...
    
    > Task :jib FAILED
    
    FAILURE: Build failed with an exception.
    
    * What went wrong:
    Execution failed for task ':jib'.
    > com.google.common.collect.ImmutableList.builderWithExpectedSize(I)Lcom/google/common/collect/ImmutableList$Builder;
    
    * Try:
    Run with --info or --debug option to get more log output. Run with --scan to get full insights.
    
    * Exception is:
    org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':jib'.
            at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:110)
            at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:77)
            at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
            at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:59)
            at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
            at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:59)
            at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:101)
            at org.gradle.api.internal.tasks.execution.FinalizeInputFilePropertiesTaskExecuter.execute(FinalizeInputFilePropertiesTaskExecuter.java:44)
            at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:91)
            at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:62)
            at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:59)
            at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
            at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
            at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
            at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.run(EventFiringTaskExecuter.java:51)
            at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:317)
            at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:309)
            at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:185)
            at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:97)
            at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
            at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:46)
            at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$ExecuteTaskAction.execute(DefaultTaskExecutionGraph.java:262)
            at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$ExecuteTaskAction.execute(DefaultTaskExecutionGraph.java:246)
            at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:136)
            at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:130)
            at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.execute(DefaultTaskPlanExecutor.java:201)
            at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.executeWithTask(DefaultTaskPlanExecutor.java:192)
            at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:130)
            at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
            at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
            at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
    Caused by: java.lang.NoSuchMethodError: com.google.common.collect.ImmutableList.builderWithExpectedSize(I)Lcom/google/common/collect/ImmutableList$Builder;
            at com.google.cloud.tools.jib.builder.EntrypointBuilder.makeEntrypoint(EntrypointBuilder.java:46)
            at com.google.cloud.tools.jib.builder.BuildSteps.getEntrypoint(BuildSteps.java:128)
            at com.google.cloud.tools.jib.builder.BuildSteps.lambda$forBuildToDockerRegistry$0(BuildSteps.java:85)
            at com.google.cloud.tools.jib.builder.BuildSteps.run(BuildSteps.java:197)
            at com.google.cloud.tools.jib.frontend.BuildStepsRunner.build(BuildStepsRunner.java:187)
            at com.google.cloud.tools.jib.gradle.BuildImageTask.buildImage(BuildImageTask.java:150)
            at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
            at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:46)
            at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39)
            at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26)
            at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:794)
            at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:761)
            at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:131)
            at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:317)
            at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:309)
            at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:185)
            at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:97)
            at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
            at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:120)
            at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:99)
            ... 30 more
    
    
    * Get more help at https://help.gradle.org
    
    Deprecated Gradle features were used in this build, making it incompatible with Gradle 5.0.
    See https://docs.gradle.org/4.8.1/userguide/command_line_interface.html#sec:command_line_warnings
    
    BUILD FAILED in 1s
    11 actionable tasks: 2 executed, 9 up-to-date
    

    Additional Information:

    I'm using Kotlin. ./gradlew assemble works.

    opened by bootstraponline 33
  • File timestamp 0 breaks Spring WebMVCs static resource resolving

    File timestamp 0 breaks Spring WebMVCs static resource resolving

    To create reproducible builds Jib sets a modTime of 0 for every file it includes in the Docker image layers https://github.com/GoogleContainerTools/jib/blob/f1c1bb4b081969d164d5522933a06042a53d7211/jib-core/src/main/java/com/google/cloud/tools/jib/image/ReproducibleLayerBuilder.java#L117

    This unfortunately breaks resolving static resources in Spring WebApplications. One might argue, that this is bug in Spring WebMVC and in fact I've also filed a bug there (https://jira.spring.io/browse/SPR-17320) - however, the java.io.File.lastModified() uses 0L also to indicate non-existing files and I/O errors.

    In Java 6 and below (https://docs.oracle.com/javase/6/docs/api/java/io/File.html#lastModified()), 0L did not seem to be considered as a valid value. In later versions the JavaDoc also talks about 0L as a possible non-error value. "Where it is required to distinguish an I/O exception from the case where 0L is returned, or where several attributes of the same file are required at the same time, or where the time of last access or the creation time are required, then the Files.readAttributes method may be used." (https://docs.oracle.com/javase/7/docs/api/java/io/File.html#lastModified()).

    Considering the contract of the java.io.File.lastModified() method, IMHO the choice of 0L for the modification date is quite unfortunate. Any fixed value other than 0 would also ensure reproducible builds but avoid the problematic error handling of java.io.File.lastModified() returning 0L also for non-existing files and I/O errors. Therefore, I would suggest to either set an unproblematic fixed value of e.g. 1L or make it configurable (with a default value other then 0L).

    area/jib-maven-plugin area/jib-gradle-plugin 
    opened by mbonato 32
  • Is it possible to build an image with a provided and already packaged war

    Is it possible to build an image with a provided and already packaged war

    Dear community,

    I'm not the owner of the app sources, I pay a license and get 2 already packaged war and one spring boot jar. Is JIB the right tool to easy put those apps in a docker image, or should I simply write a Dockerfile?

    If JIB is the right tool, do you have any example or insights please?

    NOTE : I'd like to use jib gradle plugin

    Regards, Charlélie Bouvier

    p3 question 
    opened by CharlelieBouvier 1
  • Finer grained auth system properties

    Finer grained auth system properties

    Right now auth can be set to "from" and "to" (-Djib.from.auth.username for ex) but this is really not convenient in a multimodule project with multiple images, in particular when from images don't come from the same repo - docker.io, custom.foo for example. Would be great to support something more specific like -Djib.registries.docker.io.auth.username or -Djib.registries.1.2.3.4.auth.username (ip) and password indeed.

    p3 enhancement 
    opened by rmannibucau 3
  • Use dependency injection in tasks

    Use dependency injection in tasks

    Replaces setters with constructor injection. Allows us to remove nullable annotation, make the private JibExtension fields final, and remove null checks.

    Unfortunately there's no TaskContainer#register overload that takes a name, type, constructor args and a configuration action, we work around that by using TaskContainer#register first then calling TaskProvider#configure

    opened by Sineaggi 2
  • Fix Gradle deprecations

    Fix Gradle deprecations

    • Gradle has deprecated JavaPluginConvention in favor of JavaPluginExtension
    • The file com.google.cloud.tools.jib.properties is already being generated by the gradle plugin
    • The compile configuration has been replaced by implementation
    opened by Sineaggi 1
  • Fix jackson deprecations

    Fix jackson deprecations

    Fix a few jackson deprecations. ObjectMapper.configure has been deprecated

    > Task :jib:jib-core:compileJava
    /Users/cwalker/git/jib/jib-core/src/main/java/com/google/cloud/tools/jib/registry/credentials/DockerConfigCredentialRetriever.java:91: warning: [deprecation] configure(MapperFeature,boolean) in ObjectMapper has been deprecated
            new ObjectMapper().configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true);
                              ^
    /Users/cwalker/git/jib/jib-core/src/main/java/com/google/cloud/tools/jib/builder/steps/LocalBaseImageSteps.java:221: warning: [deprecation] configure(MapperFeature,boolean) in ObjectMapper has been deprecated
                  .configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true)
                  ^
    2 warnings
    

    The replacement being

    Since 2.13 use {@code JsonMapper.builder().configure(...)
    
    opened by Sineaggi 1
  • Unauthorized for registry-1.docker.io after first push

    Unauthorized for registry-1.docker.io after first push

    Environment: macOS Monterey 12.3 MacBook Pro 16 M1

    • Jib version: 3.3.1

    • Build tool: Maven home: /opt/homebrew/Cellar/maven/3.8.6/libexec java version "17.0.5" 2022-10-18 LTS Java(TM) SE Runtime Environment (build 17.0.5+9-LTS-191) Java HotSpot(TM) 64-Bit Server VM (build 17.0.5+9-LTS-191, mixed mode, sharing)

    • OS: macOS Monterey Description of the issue I have a multi-project with several modules. When I pushed images I came across with Unauthorized issue but I change json.config like here https://github.com/GoogleContainerTools/jib/issues/3677 and it works only first push when docker hub doesn't have already such images. If push twice I get Unauthorized for registry-1.docker.io

    if I delete all images from dockerhub and push then it works only first time, second, third so on push with Unauthorized I use mvn -X clean package -P build-docker-image

    if I remove fraud module then error appears in next eureka-server module

    Screenshot 2022-12-09 at 19 44 58 Screenshot 2022-12-08 at 21 10 32

    Main POM.xml

    https://github.com/IgorZaporozhtsev/zeeservices/blob/master/pom.xml

    [INFO] zeeservices ........................................ SUCCESS [ 0.001 s] [INFO] amqp ............................................... SUCCESS [ 1.019 s] [INFO] clients ............................................ SUCCESS [ 0.248 s] [INFO] customer ........................................... SUCCESS [ 15.223 s] [INFO] fraud .............................................. FAILURE [ 10.057 s] [INFO] eureka-server ...................................... SKIPPED [INFO] notification ....................................... SKIPPED [INFO] api-gateway ........................................ SKIPPED [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------

    Expected behavior:

    All images will be pushed and updated latest

    Steps to reproduce:

    push twice to docker Hub

    mvn clean package -P build-docker-image

    jib-maven-plugin Configuration:

    <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (maybe moved to parent pom) -->
                <plugins>
    
                    <plugin>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-boot-maven-plugin</artifactId>
                        <version>${spring.boot.maven.plugin.version}</version>
                        <executions>
                            <execution>
                                <goals>
                                    <goal>repackage</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
    
                    <plugin>
                        <groupId>com.google.cloud.tools</groupId>
                        <artifactId>jib-maven-plugin</artifactId>
                        <version>3.3.1</version>
                        <configuration>
                            <from>
                                <image>eclipse-temurin:17</image>
                                <platforms>
                                    <platform>
                                        <architecture>arm64</architecture>
                                        <os>linux</os>
                                    </platform>
                                    <platform>
                                        <architecture>amd64</architecture>
                                        <os>linux</os>
                                    </platform>
                                </platforms>
                            </from>
                            <to>
                                <tags>
                                    <tag>latest</tag>
                                </tags>
                            </to>
                        </configuration>
                        <executions>
                            <execution>
                                <phase>package</phase>
                                <goals>
                                    <goal>build</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
    
                </plugins>
            </pluginManagement>
    

    Log output:

    [INFO] Executing tasks:
    [INFO] [============                  ] 41.7% complete
    [INFO] > checking base image layer sha256:10175de2f0c4...
    [INFO] > checking base image layer sha256:f7f2e5e37e70...
    [INFO] > checking base image layer sha256:2c8f048f32cc...
    [INFO] > checking base image layer sha256:a3effab4d2ab...
    [INFO] > checking base image layer sha256:6e3729cf69e0...
    [INFO] > checking base image layer sha256:4d8d923227d8...
    [INFO] > checking base image layer sha256:eda8241fd25f...
    [INFO] > checking base image layer sha256:35dccabde73d...
    [INFO] > scheduling building manifests
    [INFO] > launching layer pushers
    [INFO] > scheduling pushing container configurations
    [INFO] > launching layer pushers
    [INFO]
    [INFO] ------------------------------------------------------------------------
    [INFO] Reactor Summary for zeeservices 1.0-SNAPSHOT:
    [INFO]
    [INFO] zeeservices ........................................ SUCCESS [  0.054 s]
    [INFO] amqp ............................................... SUCCESS [  1.096 s]
    [INFO] clients ............................................ SUCCESS [  0.263 s]
    [INFO] customer ........................................... SUCCESS [ 15.143 s]
    [INFO] fraud .............................................. FAILURE [ 10.812 s]
    [INFO] eureka-server ...................................... SKIPPED
    [INFO] notification ....................................... SKIPPED
    [INFO] api-gateway ........................................ SKIPPED
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD FAILURE
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time:  27.519 s
    [INFO] Finished at: 2022-12-09T19:36:54+02:00
    [INFO] ------------------------------------------------------------------------
    [ERROR] Failed to execute goal com.google.cloud.tools:jib-maven-plugin:3.3.1:build (default) on project fraud: Build image failed, perhaps you should make sure your credentials for 'registry-1.docker.io/booratina/fraud' are set up correctly. See https://github.com/GoogleContainerTools/jib/blob/master/docs/faq.md#what-should-i-do-when-the-registry-responds-with-unauthorized for help: Unauthorized for registry-1.docker.io/booratina/fraud: 401 Unauthorized
    [ERROR] HEAD https://registry-1.docker.io/v2/booratina/fraud/blobs/sha256:9c6d21522d145d7d24f42d96ad9530f8c051affa1e303695c786a70e623aad47
    [ERROR] -> [Help 1]
    org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.google.cloud.tools:jib-maven-plugin:3.3.1:build (default) on project fraud: Build image failed, perhaps you should make sure your credentials for 'registry-1.docker.io/booratina/fraud' are set up correctly. See https://github.com/GoogleContainerTools/jib/blob/master/docs/faq.md#what-should-i-do-when-the-registry-responds-with-unauthorized for help
        at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:375)
        at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:351)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:171)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:163)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
        at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
        at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
        at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:294)
        at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
        at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
        at org.apache.maven.cli.MavenCli.execute (MavenCli.java:960)
        at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293)
        at org.apache.maven.cli.MavenCli.main (MavenCli.java:196)
        at jdk.internal.reflect.DirectMethodHandleAccessor.invoke (DirectMethodHandleAccessor.java:104)
        at java.lang.reflect.Method.invoke (Method.java:578)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
        at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
        at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
    Caused by: org.apache.maven.plugin.MojoExecutionException: Build image failed, perhaps you should make sure your credentials for 'registry-1.docker.io/booratina/fraud' are set up correctly. See https://github.com/GoogleContainerTools/jib/blob/master/docs/faq.md#what-should-i-do-when-the-registry-responds-with-unauthorized for help
        at com.google.cloud.tools.jib.maven.BuildImageMojo.execute (BuildImageMojo.java:181)
        at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
        at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:370)
        at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:351)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:171)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:163)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
        at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
        at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
        at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:294)
        at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
        at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
        at org.apache.maven.cli.MavenCli.execute (MavenCli.java:960)
        at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293)
        at org.apache.maven.cli.MavenCli.main (MavenCli.java:196)
        at jdk.internal.reflect.DirectMethodHandleAccessor.invoke (DirectMethodHandleAccessor.java:104)
        at java.lang.reflect.Method.invoke (Method.java:578)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
        at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
        at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
    Caused by: com.google.cloud.tools.jib.api.RegistryUnauthorizedException: Unauthorized for registry-1.docker.io/booratina/fraud
        at com.google.cloud.tools.jib.registry.RegistryEndpointCaller.call (RegistryEndpointCaller.java:163)
        at com.google.cloud.tools.jib.registry.RegistryEndpointCaller.call (RegistryEndpointCaller.java:114)
        at com.google.cloud.tools.jib.registry.RegistryClient.callRegistryEndpoint (RegistryClient.java:623)
        at com.google.cloud.tools.jib.registry.RegistryClient.checkBlob (RegistryClient.java:474)
        at com.google.cloud.tools.jib.builder.steps.PushBlobStep.call (PushBlobStep.java:74)
        at com.google.cloud.tools.jib.builder.steps.PushLayerStep.call (PushLayerStep.java:92)
        at com.google.cloud.tools.jib.builder.steps.PushLayerStep.call (PushLayerStep.java:33)
        at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly (TrustedListenableFutureTask.java:131)
        at com.google.common.util.concurrent.InterruptibleTask.run (InterruptibleTask.java:74)
        at com.google.common.util.concurrent.TrustedListenableFutureTask.run (TrustedListenableFutureTask.java:82)
        at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1144)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:642)
        at java.lang.Thread.run (Thread.java:1589)
    Caused by: com.google.cloud.tools.jib.http.ResponseException: 401 Unauthorized
    HEAD https://registry-1.docker.io/v2/booratina/fraud/blobs/sha256:9c6d21522d145d7d24f42d96ad9530f8c051affa1e303695c786a70e623aad47
        at com.google.cloud.tools.jib.http.FailoverHttpClient.call (FailoverHttpClient.java:355)
        at com.google.cloud.tools.jib.http.FailoverHttpClient.call (FailoverHttpClient.java:266)
        at com.google.cloud.tools.jib.registry.RegistryEndpointCaller.call (RegistryEndpointCaller.java:138)
        at com.google.cloud.tools.jib.registry.RegistryEndpointCaller.call (RegistryEndpointCaller.java:114)
        at com.google.cloud.tools.jib.registry.RegistryClient.callRegistryEndpoint (RegistryClient.java:623)
        at com.google.cloud.tools.jib.registry.RegistryClient.checkBlob (RegistryClient.java:474)
        at com.google.cloud.tools.jib.builder.steps.PushBlobStep.call (PushBlobStep.java:74)
        at com.google.cloud.tools.jib.builder.steps.PushLayerStep.call (PushLayerStep.java:92)
        at com.google.cloud.tools.jib.builder.steps.PushLayerStep.call (PushLayerStep.java:33)
        at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly (TrustedListenableFutureTask.java:131)
        at com.google.common.util.concurrent.InterruptibleTask.run (InterruptibleTask.java:74)
        at com.google.common.util.concurrent.TrustedListenableFutureTask.run (TrustedListenableFutureTask.java:82)
        at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1144)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:642)
        at java.lang.Thread.run (Thread.java:1589)
    Caused by: com.google.api.client.http.HttpResponseException: 401 Unauthorized
    HEAD https://registry-1.docker.io/v2/booratina/fraud/blobs/sha256:9c6d21522d145d7d24f42d96ad9530f8c051affa1e303695c786a70e623aad47
        at com.google.api.client.http.HttpResponseException$Builder.build (HttpResponseException.java:293)
        at com.google.api.client.http.HttpRequest.execute (HttpRequest.java:1118)
        at com.google.cloud.tools.jib.http.FailoverHttpClient.call (FailoverHttpClient.java:349)
        at com.google.cloud.tools.jib.http.FailoverHttpClient.call (FailoverHttpClient.java:266)
        at com.google.cloud.tools.jib.registry.RegistryEndpointCaller.call (RegistryEndpointCaller.java:138)
        at com.google.cloud.tools.jib.registry.RegistryEndpointCaller.call (RegistryEndpointCaller.java:114)
        at com.google.cloud.tools.jib.registry.RegistryClient.callRegistryEndpoint (RegistryClient.java:623)
        at com.google.cloud.tools.jib.registry.RegistryClient.checkBlob (RegistryClient.java:474)
        at com.google.cloud.tools.jib.builder.steps.PushBlobStep.call (PushBlobStep.java:74)
        at com.google.cloud.tools.jib.builder.steps.PushLayerStep.call (PushLayerStep.java:92)
        at com.google.cloud.tools.jib.builder.steps.PushLayerStep.call (PushLayerStep.java:33)
        at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly (TrustedListenableFutureTask.java:131)
        at com.google.common.util.concurrent.InterruptibleTask.run (InterruptibleTask.java:74)
        at com.google.common.util.concurrent.TrustedListenableFutureTask.run (TrustedListenableFutureTask.java:82)
        at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1144)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:642)
        at java.lang.Thread.run (Thread.java:1589)
    [ERROR]
    [ERROR]
    [ERROR] For more information about the errors and possible solutions, please read the following articles:
    [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
    [ERROR]
    [ERROR] After correcting the problems, you can resume the build with the command
    [ERROR]   mvn <args> -rf :fraud
    
    area/jib-maven-plugin p3 area/jib-gradle-plugin kind/bug 
    opened by IgorZaporozhtsev 20
Releases(v0.12.0-cli)
  • v0.12.0-cli(Oct 28, 2022)

  • v3.3.1-maven(Oct 27, 2022)

  • v3.3.1-gradle(Oct 27, 2022)

    Major Changes

    • Added lazy evaluation for jib.container.creationTime and jib.container.filesModificationTime parameters using Gradle Property and Provider. (#3709)
    • Upgraded Google HTTP libraries to 1.42.2 (#3745)
    • Fixed issue with jibBuildTar's UP-TO-DATE check by adding back main SourceSet's outputs to task dependency (#3793)

    See CHANGELOG.md for more details.

    Source code(tar.gz)
    Source code(zip)
  • v0.23.0-core(Oct 27, 2022)

    Major Changes

    • Upgraded Google HTTP libraries to 1.42.2 (#3745)
    • Re-synchronized jackson dependencies with BOM to use latest versions (#3768)
    • Fixed partially cached base image authorization issue by adding check for existence of layers in cache (#3767)

    See CHANGELOG.md for more details.

    Source code(tar.gz)
    Source code(zip)
  • v0.11.0-cli(Sep 1, 2022)

    Major Changes

    • Included imagePushed field to image metadata json output file which provides information on whether an image was pushed by Jib. (#3641)
    • Better error messaging when environment map in container.environment contains null values (#3672).
    • Starting with jib-cli 0.11.0, SLSA 3 signatures will be generated with every release. (#3762).
    • Upgraded slf4j-api to 2.0.0 (#3735).
    • Upgraded nullaway to 0.9.9 (#3720).

    See CHANGELOG.md for more details.

    Source code(tar.gz)
    Source code(zip)
    attestation.intoto.jsonl(13.63 KB)
    jib-jre-0.11.0.zip(9.40 MB)
    jib-jre-0.11.0.zip.sha256(85 bytes)
  • v3.3.0-maven(Aug 31, 2022)

    Major Changes

    • Included imagePushed field to image metadata json output file which provides information on whether an image was pushed by Jib. Note that the output file is build/jib-image.json by default or configurable with jib.outputPaths.imageJson. (#3641)
    • Added better error messaging when environment map in container.environment contains null values (#3672).
    • Added support for OCI image index manifests (#3715).
    • Added support for base image layer compressed with zstd (#3717)
    • Upgraded slf4j-simple and slf4j-api to 2.0.0 (#3734, #3735).
    • Upgraded nullaway to 0.9.9. (#3720)
    • Jib now only checks for file existence instead of running the executable passed into dockerClient.executable for the purpose of verifying if docker is installed correctly. Users are responsible for ensuring that the docker executable specified through this property is valid and has the correct permissions (#3744).
    • Jib now throws an exception when the base image doesn't support target platforms during multi-platform build (#3707).

    See CHANGELOG.md for more details.

    Source code(tar.gz)
    Source code(zip)
  • v3.3.0-gradle(Aug 31, 2022)

    Major Changes

    • Included imagePushed field to image metadata json output file which provides information on whether an image was pushed by Jib. Note that the output file is build/jib-image.json by default or configurable with jib.outputPaths.imageJson. (#3641)
    • Added lazy evaluation for jib.extraDirectories parameters using Gradle Property and Provider. (#3737)
    • Added better error messaging when environment map in container.environment contains null values (#3672).
    • Added support for OCI image index manifests (#3715).
    • Added support for base image layer compressed with zstd (#3717).
    • Upgraded slf4j-api to 2.0.0 (#3735).
    • Upgraded nullaway to 0.9.9 (#3720)
    • Jib now only checks for file existence instead of running the executable passed into dockerClient.executable for the purpose of verifying if docker is installed correctly. Users are responsible for ensuring that the docker executable specified through this property is valid and has the correct permissions (#3744).
    • Jib now throws an exception when the base image doesn't support target platforms during multi-platform build (#3707).

    See CHANGELOG.md for more details.

    Source code(tar.gz)
    Source code(zip)
  • v0.22.0-core(Aug 31, 2022)

    Major Changes

    • Added better error messaging when environment map in container.environment contains null values (https://github.com/GoogleContainerTools/jib/pull/3672).
    • Added DockerClient interface which is used to make calls to the Docker daemon. This allows for custom implementations to be introduced via SPI (https://github.com/GoogleContainerTools/jib/pull/3703).
    • Added support for OCI image index manifests (https://github.com/GoogleContainerTools/jib/pull/3715).
    • Added support for base image layer compressed with zstd (https://github.com/GoogleContainerTools/jib/pull/3717)
    • Upgraded slf4j-api to 2.0.0 (https://github.com/GoogleContainerTools/jib/pull/3735).
    • Upgraded nullaway to 0.9.9. (https://github.com/GoogleContainerTools/jib/pull/3720)
    • Jib now throws an exception when the base image doesn't support target platforms during multi-platform build (https://github.com/GoogleContainerTools/jib/pull/3707).
    • Jib now only checks for file existence instead of running the executable passed into dockerClient.executable for the purpose of verifying if docker is installed correctly. Users are responsible for ensuring that the docker executable specified through this property is valid and has the correct permissions (https://github.com/GoogleContainerTools/jib/pull/3744).

    See CHANGELOG.md for more details.

    Source code(tar.gz)
    Source code(zip)
  • v0.10.0-cli(Apr 6, 2022)

  • v3.2.1-maven(Mar 30, 2022)

  • v3.2.1-gradle(Mar 31, 2022)

  • v0.21.0-core(Mar 29, 2022)

    Major Changes

    • Support for configuration of credential helper with environment variables (#3575).
    • Support architecture suffixes in tags when publishing multi-platform images (#3523).
    • Upgraded jackson-databind to 2.13.2.2 (#3612).
    • Added helpful pointers for unsupported class file version exception cause (#3499).

    See CHANGELOG.md for more details.

    Source code(tar.gz)
    Source code(zip)
  • v3.2.0-maven(Jan 19, 2022)

    Major Changes

    • Changed the default base image of the Jib CLI jar command from the adoptopenjdk images to the eclipse-temurin on Docker Hub. Note that Temurin (by Adoptium) is the new name of AdoptOpenJDK. (#3483)
    • For retrieving credentials, Jib additionally looks for $XDG_RUNTIME_DIR/containers/auth.json, $XDG_CONFIG_HOME/containers/auth.json, and $HOME/.config/containers/auth.json. (#3524)
    • <from><platforms> parameter for multi-architecture image building can now be configured through Maven and system properties (for example, -Djib.from.platforms=linux/amd64,linux/arm64 on the command-line). (#2742)
    • Build will fail if <extraDirectories><paths> contain from directory that doesn't exist locally (#3542)
    • Fixed incorrect parsing with comma escaping when providing Jib list or map property values on the command-line. (#2224)

    See CHANGELOG.md for more details.

    Source code(tar.gz)
    Source code(zip)
  • v3.2.0-gradle(Jan 19, 2022)

    Major Changes

    • Changed the default base image of the Jib CLI jar command from the adoptopenjdk images to the eclipse-temurin on Docker Hub. Note that Temurin (by Adoptium) is the new name of AdoptOpenJDK. (#3483)
    • For retrieving credentials, Jib additionally looks for $XDG_RUNTIME_DIR/containers/auth.json, $XDG_CONFIG_HOME/containers/auth.json, and $HOME/.config/containers/auth.json. (#3524)
    • jib.from.platforms parameter for multi-architecture image building can now be configured through Maven and system properties (for example, -Djib.from.platforms=linux/amd64,linux/arm64 on the command-line). (#2742)
    • Build will fail if extraDirectories.paths contain from directory that doesn't exist locally (#3542)
    • Fixed ClassCastException when using non-String value (for example, Provider) for Main-Class manifest attribute of the jar task. (#3396)
    • Fixed incorrect parsing with comma escaping when providing Jib list or map property values on the command-line. (#2224)

    See CHANGELOG.md for more details.

    Source code(tar.gz)
    Source code(zip)
  • v0.9.0-cli(Jan 19, 2022)

  • v0.8.0-cli(Nov 12, 2021)

    Major Changes

    • Increased robustness in registry communications by retrying HTTP requests (to the effect of retrying image pushes or pulls) on I/O exceptions with exponential backoffs. (#3351)
    • Now also supports username and password properties for the auths section in a Docker config (~/.docker/config.json). (Previously, only supported was a base64-encoded username and password string of the auth property.) (#3365)
    • Downgraded Google HTTP libraries to 1.34.0 to resolve network issues. (#3415, #3058, #3409)
    • Changed the default base image of the Jib CLI jar command from the adoptopenjdk images to the eclipse-temurin (for Java 8 and 11) and azul/zulu-openjdk (for Java 17) images on Docker Hub. Note that Temurin (by Adoptium) is the new name of AdoptOpenJDK. (#3491)

    See CHANGELOG.md for more details.

    Source code(tar.gz)
    Source code(zip)
    jib-jre-0.8.0.zip(9.38 MB)
    jib-jre-0.8.0.zip.sha256(80 bytes)
  • v0.20.0-core(Aug 19, 2021)

    Major Changes

    • Increased robustness in registry communications by retrying HTTP requests (to the effect of retrying image pushes or pulls) on I/O exceptions with exponential backoffs. (#3351)
    • Downgraded Google HTTP libraries to 1.34.0 to resolve network issues. (#3415, #3058, #3409)

    See CHANGELOG.md for more details.

    Source code(tar.gz)
    Source code(zip)
  • v3.1.4-maven(Aug 16, 2021)

  • v3.1.4-gradle(Aug 16, 2021)

  • v3.1.3-maven(Aug 11, 2021)

    Major Changes

    • Increased robustness in registry communications by retrying HTTP requests (to the effect of retrying image pushes or pulls) on I/O exceptions with exponential backoffs. (#3351)
    • Now also supports username and password properties for the auths section in a Docker config (~/.docker/config.json). (Previously, only supported was a base64-encoded username and password string of the auth property.) (#3365)
    • Upgraded Google HTTP libraries to 1.39.2. (#3387)

    See CHANGELOG.md for more details.

    Source code(tar.gz)
    Source code(zip)
  • v3.1.3-gradle(Aug 11, 2021)

    Major Changes

    • Increased robustness in registry communications by retrying HTTP requests (to the effect of retrying image pushes or pulls) on I/O exceptions with exponential backoffs. (#3351)
    • Now also supports username and password properties for the auths section in a Docker config (~/.docker/config.json). (Previously, only supported was a base64-encoded username and password string of the auth property.) (#3365)
    • Upgraded Google HTTP libraries to 1.39.2. (#3387)

    See CHANGELOG.md for more details.

    Source code(tar.gz)
    Source code(zip)
  • v3.1.2-maven(Jul 8, 2021)

    Major Changes

    • Fixed the bug introduced in 3.1 that constructs a wrong Java runtime classpath when two dependencies have the same artifact ID and version but different group IDs. The bug occurs only when using Java 9+ or setting <container><expandClasspathDependencies>. (#3331)

    See CHANGELOG.md for more details.

    Source code(tar.gz)
    Source code(zip)
  • v3.1.2-gradle(Jul 8, 2021)

    Major Changes

    • Fixed the bug introduced in 3.1 that constructs a wrong Java runtime classpath when two dependencies have the same artifact ID and version but different group IDs. The bug occurs only when using Java 9+ or setting jib.container.expandClasspathDependencies. (#3331)

    See CHANGELOG.md for more details.

    Source code(tar.gz)
    Source code(zip)
  • v0.7.0-cli(Jun 24, 2021)

  • v0.19.0-core(Jun 14, 2021)

  • v3.1.1-maven(Jun 10, 2021)

  • v3.1.1-gradle(Jun 10, 2021)

  • v3.1.0-maven(Jun 9, 2021)

    Major Changes

    • For Google Artifact Registry (*-docker.pkg.dev), Jib now tries Google Application Default Credentials last like it has been doing for gcr.io. (#3241)
    • Jib now creates an additional layer that contains two small text files: /app/jib-classpath-file and /app/jib-main-class-file. They hold, respectively, the final Java runtime classpath and the main class computed by Jib that are suitable for app execution on JVM. For example, with Java 9+, setting the container entrypoint to java --class-path @/app/jib-classpath-file @/app/jib-main-class-file will work to start the app. (This is basically the default entrypoint set by Jib when the entrypoint is not explicitly configured by the user.) The files are always generated whether Java 8 or 9+, or whether jib.container.entrypoint is explicitly configured. The files can be helpful especially when setting a custom entrypoint for a shell script that needs to get the classpath and the main class computed by Jib, or for AppCDS. (#3280)
    • For Java 9+ apps, the default Java runtime classpath explicitly lists all the app dependencies, preserving the dependency loading order declared by Maven. This is done by changing the default entrypoint to use the new classpath JVM argument file (basically java -cp @/app/jib-classpath-file). As such, <container><expandClasspathDependencies> takes no effect for Java 9+. (#3280)
    • Timestamps of file entries in a tarball built with jib:buildTar are set to the epoch, making the tarball reproducible. (#3158)

    See CHANGELOG.md for more details.

    Source code(tar.gz)
    Source code(zip)
  • v3.1.0-gradle(Jun 9, 2021)

    Major Changes

    • For Google Artifact Registry (*-docker.pkg.dev), Jib now tries Google Application Default Credentials last like it has been doing for gcr.io. (#3241)
    • Jib now creates an additional layer that contains two small text files: /app/jib-classpath-file and /app/jib-main-class-file. They hold, respectively, the final Java runtime classpath and the main class computed by Jib that are suitable for app execution on JVM. For example, with Java 9+, setting the container entrypoint to java --class-path @/app/jib-classpath-file @/app/jib-main-class-file will work to start the app. (This is basically the default entrypoint set by Jib when the entrypoint is not explicitly configured by the user.) The files are always generated whether Java 8 or 9+, or whether jib.container.entrypoint is explicitly configured. The files can be helpful especially when setting a custom entrypoint for a shell script that needs to get the classpath and the main class computed by Jib, or for AppCDS. (#3280)
    • For Java 9+ apps, the default Java runtime classpath explicitly lists all the app dependencies, preserving the dependency loading order declared by Gradle. This is done by changing the default entrypoint to use the new classpath JVM argument file (basically java -cp @/app/jib-classpath-file). As such, jib.container.expandClasspathDependencies takes no effect for Java 9+. (#3280)
    • Timestamps of file entries in a tarball built with jibBuildTar are set to the epoch, making the tarball reproducible. (#3158)
    • Added lazy evaluation for jib.container.labels using Gradle Property and Provider. (#3242)

    See CHANGELOG.md for more details.

    Source code(tar.gz)
    Source code(zip)
  • v0.6.0-cli(Apr 28, 2021)

Owner
null
Business Application Platform - no-code/low-code platform to build business applications

Orienteer What is Orienteer Orienteer is Business Application Platform: Easy creation of business applications Extendable to fit your needs Dynamic da

Orienteer 189 Dec 6, 2022
Jlink.online - Build optimized Java runtimes in your browser!

jlink.online is a HTTP microservice that builds optimized/minimized Java runtimes on the fly. This project is currently experimental and subject to ch

Tyler Cook 1 Dec 2, 2020
A tool generating local images based on ECharts-Java

Test plan Local unit testing Docker AWS remote Linux Windows MacOS Integration Test with Snapshot version Introduction This library is used to take sn

ECharts Java Open Source Project 5 Dec 16, 2022
Build your own Minecraft authentication system with Mojang authentication server support.

Build your own Minecraft authentication system with Mojang authentication server support. A fork of yushijinhun/authlib-injector.

Ethan Zuo 15 Dec 17, 2022
Processing and node.js project for rendering MouseGAN images from RunwayML

Computer MouseGAN Processing and node.js project for rendering MouseGAN images from RunwayML. Usage Clone or download this repository. git clone https

Coding Train 17 Apr 1, 2022
a simple program to turn stockX images into gifs!

StockX Gif Converter make stockx images look cool Idea I got this idea from Fyko/stockx-gif-next Usage import me.brennan.stockxgiffer.StockXGiffer; p

Brennan 7 Jul 19, 2022
An Android library for managing images and the memory they use.

Fresco Fresco is a powerful system for displaying images in Android applications. Fresco takes care of image loading and display, so you don't have to

Meta 16.9k Jan 3, 2023
Powerful and flexible library for loading, caching and displaying images on Android.

Universal Image Loader The great ancestor of modern image-loading libraries :) UIL aims to provide a powerful, flexible and highly customizable instru

Sergey Tarasevich 16.8k Jan 2, 2023
Library to generate images from layers

react-native-image-generator Library for generate images from other images Installation yarn add react-native-image-generator Usage import { generate

Evgeny Usov 13 Nov 16, 2022
Aye - an open source tool for scanning images on Kubernetes cluster

Aye is an open source tool for scanning images on Kubernetes cluster. It uses Anchore CLI behind the scenes to get information about all images that are currently on the cluster. It also provides Prometheus metrics for each image, so teams are aware of different levels of vulnerabilities found inside them.

null 4 Sep 4, 2022
A command-line tool to generate different types of noise as images.

noisegen A command-line tool to generate different types of noise as images. Usage Run one of the releases, either the JAR using java -jar noisegen-0.

Tommy Ettinger 6 Jul 21, 2022
Project for coding information into images via teganography and cryptography.

SecurePic This project is created as part of the 'Software Engineering' lecture in summer semester 2022 in the Applied Computer Science course at DHBW

Frederik Wolter 3 Jun 6, 2022
A manager tool to categorize game assets such as images and sounds/music. The tool enables you to tag these files, so that finding them by tags allows fast searches.

BtAssetManager This application allows you to easily categorize large amounts of image and sound files. You can apply tags to each individual file to

null 21 Sep 15, 2022
Generates and keeps up-to-date your Spring Boot applications' Let's Encrypt or other ACME compliant SSL certificates.

Generates and keeps up-to-date your Spring Boot applications' Let's Encrypt or other ACME compliant SSL certificates. Pure Java in a single file of library code. An automated embedded alternative to Certbot and docker-sidecars. No JVM restart is needed on certificate update.

Valentyn Berezin 12 Nov 18, 2022
An advanced and highly optimized Java library to build framework

An advanced and highly optimized Java library to build frameworks: it's useful for scanning class paths, generating classes at runtime, facilitating the use of reflection, scanning the filesystem, executing stringified source code and much more...

Burningwave 119 Dec 21, 2022
See how simple it is to build a REST API with a database using Java and Spring Boot

Seu primeiro projeto Java Web no Spring Boot 2022 Veja como é simples construir uma API REST com banco de dados usando Java e Spring Boot Realização D

DevSuperior 74 Dec 26, 2022
About I build a custom animated alert dialog with rounded corners - Java🚀🔥

Custom Animated AlertDialog Animated AlertDialog With Rounded Corners Alert Dialog Style First you need add this code to your project themes.xml file

Kaveesha Anuhas 2 Jul 15, 2022
An example on how to build a configurable widget to trigger external searches along with Liferay search to Elasticsearch.

Liferay External Searches An example on how to build a configurable widget to trigger external searches along with Liferay search to Elasticsearch. Ge

Louis-Guillaume Durand 4 Oct 25, 2021
In this course, we will learn how to build a complete full-stack web application using Spring boot as backend and React (React Hooks) as frontend

In this course, we will learn how to build a complete full-stack web application using Spring boot as backend and React (React Hooks) as frontend. We will use MySQL database to store and retrieve the data.

Ramesh Fadatare 43 Dec 22, 2022