Java 脱机执行com.google.cloud.tools:jib maven plugin:1.4.0:dockerBuild plugin时失败
当无法访问在线docker注册表以强制仅使用本地资源时,我应该如何设置此maven插件Java 脱机执行com.google.cloud.tools:jib maven plugin:1.4.0:dockerBuild plugin时失败,java,maven,docker,maven-plugin,jib,Java,Maven,Docker,Maven Plugin,Jib,当无法访问在线docker注册表以强制仅使用本地资源时,我应该如何设置此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.
[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 && sync && /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>
com.google.cloud.tools
jib maven插件
采用OpenJDK:11 jre热点
精神科:最新
嘘
-c
chmod+x/entrypoint.sh&&;同步及&/entrypoint.sh
8080
总是
0
真的
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)
[INFO]——jib maven插件:1.6.1:dockerBuild(默认cli)@mental---
[警告]已弃用;与值一起使用改为使用\u当前\u时间戳
[警告]将图像创建时间设置为当前时间;您的图像可能无法复制。
[信息]
[信息]将应用程序容器化到Docker守护程序作为mental。。。
[信息]
[INFO]容器入口点设置为[sh,-c,chmod+x/entrypoint.sh&&sync&&entrypoint.sh]
[信息]
[信息]已将Docker守护程序的映像构建为mental ray
[信息]执行任务:
[信息][=======================================]100.0%完成
[信息]
[信息]------------------------------------------------------------------------
[信息]建立成功
[信息]------------------------------------------------------------------------
[信息]总时间:09:30分钟
[信息]完成时间:2019-09-28819:02:35+03:00
[信息]------------------------------------------------------------------------
线程“thread-5”中的异常线程“thread-6”中的异常java.lang.NoClassDefFoundError:com/google/common/io/RecursiveDeleteOption
在com.google.cloud.tools.jib.filesystem.FileOperations.lambda$deleteRecursiveOnExit$1(FileOperations.java:102)
运行(Thread.java:748)
原因:java.lang.ClassNotFoundException:com.google.common.io.RecursiveDeleteOption
位于org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50)
位于org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:271)
位于org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:247)
位于org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:239)
... 还有两个
java.lang.NoClassDefFoundError:com/google/common/io/RecursiveDeleteOption
在com.google.cloud.tools.jib.filesystem.FileOperations.lambda$deleteRecursiveOnExit$1(FileOperations.java:102)
运行(Thread.java:748)
查看配置会有所帮助,但您可以通过
指示jib使用本地docker deamon作为图像源,方法是在图像名称前面加上docker://
,如下所示(顺便说一句,这需要插件版本1.6.0+):
docker://openjdk:alpine
HTH[错误]无法在project mental上执行目标com.google.cloud。工具:jib maven插件:1.4.0:dockerBuild(默认cli):无效的图像引用docker://openjdk:alpine,也许您应该根据[ERROR]检查引用的格式是否正确,例如,斜杠分隔的名称组件不能有大写字母:无效的图像引用:docker://openjdk:alpine [ERROR]->[Help 1]在开始构建离线之前,我也提取了此图像,而且在我的初始配置中,我刚刚配置了2次插件,第一个onw没有配置,第二个配置得很好:你能把版本升级到最新版本吗?你试过
docker://adoptopenjdk:11-jre热点
?URL样式的引用被添加到Jib 1.6中。最新的is版本是1.6.1。
<configuration>
<from>
<image>docker://openjdk:alpine</image>
</from>
<!-- ... -->
</configuration>