我正在使用jib为tomcat构建我的spring boot war文件。
我使用的是本地的tomcat docker图像。
我使用gradle jibDockerBuild --stacktrace,得到以下错误:
caused by: com.google.cloud.tools.jib.image.json.BadContainerConfigurationFormatException: Invalid volume path: [
at com.google.cloud.tools.jib.image.json.JsonToImageTranslator.volumeMapToSet(JsonToImageTranslator.java:268)
at com.google.cloud.tools.jib.image.json.JsonToImageTranslator.configureBuilderWithContainerConfiguration(JsonToImageTranslator.java:201)
at com.google.cloud.tools.jib.image.json.JsonToImageTranslator.toImage(JsonToImageTranslator.java:137)
at com.google.cloud.tools.jib.builder.steps.LocalBaseImageSteps.lambda$returnImageAndRegistryClientStep$2(LocalBaseImageSteps.java:171)
at com.google.cloud.tools.jib.builder.steps.StepsRunner.lambda$assignLocalImageResult$4(StepsRunner.java:289)
at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:125)
at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:69)
at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:78)我可以使用docker run和docker-compose来运行镜像。
有什么想法吗?
谢谢,B
发布于 2020-12-11 00:01:04
本地Docker守护程序中的基础tomcat映像的卷配置值不正确。我们过去也见过exact same case。
基于centos/systemd的较旧修订版获得了较旧的基本映像,其中使用
[[ <volume-path> ]]模式定义卷。这似乎根本不起作用,这应该得到支持吗?
原因: com.google.cloud.tools.jib.image.json.BadContainerConfigurationFormatException:无效的卷路径:[
根据最新的centos/systemd重新建立映像的基础似乎可以在将相同卷定义为[ <volume-path> ]的情况下工作
在这种情况下,docker inspect显示Volumes被设置为
"Volumes": {
"[": {},
"]": {},
"“/sys/fs/cgroupâ€": {}
}这是一个来自字符串(卷路径) ->文字{}的映射,这意味着它定义了三个卷路径(映射条目):[、]、“/sys/fs/cgroupâ€。当然,]和[不是有效的绝对UNIX路径。
正确的设置如下所示
"Volumes": {
"/my/volume/dir": {},
"/another/volume": {}
},其中每个条目都是从UNIX绝对路径到{}的映射。
修复tomcat镜像的Volumes配置将解决此问题。
https://stackoverflow.com/questions/65236367
复制相似问题