Ошибка во время автономного выполнения плагина com.google.cloud.tools:jib-maven-plugin:1.4.0:dockerBuild - PullRequest
0 голосов
/ 26 сентября 2019

Как мне настроить этот подключаемый модуль maven, если нет доступа к реестру онлайн-докера, чтобы принудительно использовать только локальные ресурсы?

[ERROR] Failed to execute goal com.google.cloud.tools:jib-maven-plugin:1.4.0:dockerBuild (default-cli) on project mental: registry-1.docker.io: Temporary failure in name resolution: Unknown host registry-1.docker.io: Temporary failure in name resolution -> [Help 1]

параметр подключения:

<plugin>
    <groupId>com.google.cloud.tools</groupId>
    <artifactId>jib-maven-plugin</artifactId>
    <configuration>
        <from>
            <image>adoptopenjdk:11-jre-hotspot</image>
        </from>
        <to>
            <image>mental:latest</image>
        </to>
        <container>
            <entrypoint>
                <shell>sh</shell>
                <option>-c</option>
                <arg>chmod +x /entrypoint.sh &amp;&amp; sync &amp;&amp; /entrypoint.sh</arg>
            </entrypoint>
            <ports>
                <port>8080</port>
            </ports>
            <environment>
                <SPRING_OUTPUT_ANSI_ENABLED>ALWAYS</SPRING_OUTPUT_ANSI_ENABLED>
                <JHIPSTER_SLEEP>0</JHIPSTER_SLEEP>
            </environment>
            <useCurrentTimestamp>true</useCurrentTimestamp>
        </container>
    </configuration>
</plugin>

UPD.После обновления плагина Jib до 1.61.и добавление docker: // перед именем изображения, автономная сборка работает, но я получаю следующее сообщение об ошибке:

[INFO] --- jib-maven-plugin:1.6.1:dockerBuild (default-cli) @ mental ---
[WARNING] <container><useCurrentTimestamp> is deprecated; use <container><creationTime> with the value USE_CURRENT_TIMESTAMP instead
[WARNING] Setting image creation time to current time; your image may not be reproducible.
[INFO] 
[INFO] Containerizing application to Docker daemon as mental...
[INFO] 
[INFO] Container entrypoint set to [sh, -c, chmod +x /entrypoint.sh && sync && /entrypoint.sh]
[INFO] 
[INFO] Built image to Docker daemon as mental
[INFO] Executing tasks:
[INFO] [==============================] 100.0% complete
[INFO] 
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  09:30 min
[INFO] Finished at: 2019-09-28T19:02:35+03:00
[INFO] ------------------------------------------------------------------------
Exception in thread "Thread-5" Exception in thread "Thread-6" java.lang.NoClassDefFoundError: com/google/common/io/RecursiveDeleteOption
    at com.google.cloud.tools.jib.filesystem.FileOperations.lambda$deleteRecursiveOnExit$1(FileOperations.java:102)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassNotFoundException: com.google.common.io.RecursiveDeleteOption
    at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:271)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:247)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:239)
    ... 2 more
java.lang.NoClassDefFoundError: com/google/common/io/RecursiveDeleteOption
    at com.google.cloud.tools.jib.filesystem.FileOperations.lambda$deleteRecursiveOnExit$1(FileOperations.java:102)
    at java.lang.Thread.run(Thread.java:748)

1 Ответ

1 голос
/ 26 сентября 2019

Просмотр конфигурации может помочь, но вы можете указать Jib через <configuration> использовать локальный докер deamon в качестве источника изображения, добавив к имени изображения docker://, как показано ниже (что, кстати, требует версии плагина 1.6.0 + ):

<configuration>
  <from>
    <image>docker://openjdk:alpine</image>
  </from>
  <!-- ... -->
</configuration>

HTH

...