我试图在maven项目中构建一个简单的docker映像,将映像构建作为maven构建过程的一部分:
<build>
<finalName>my-api</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!-- Docker -->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>1.4.6</version>
<executions>
<execution>
<id>default</id>
<goals>
<goal>build</goal>
<!-- <goal>push</goal> -->
</goals>
</execution>
</executions>
<configuration>
<repository>reponame/${project.name}</repository>
<tag>${project.version}</tag>
<skipDockerInfo>true</skipDockerInfo>
</configuration>
</plugin>
</plugins>
</build>FROM openjdk:8-jdk-alpine
VOLUME /tmp
EXPOSE 8080
ADD target/*.jar app.jar
ENTRYPOINT [ "sh", "-c", "java -jar /app.jar" ]但是它失败了,总是得到相同的错误跟踪,无论我使用哪个图像,错误仍然存在。
错误:
原因: com.spotify.docker.client.shaded.javax.ws.rs.ProcessingException: java.lang.UnsatisfiedLinkError:未能加载FFI提供程序jnr.ffi.provider.jffi.Provider 原因: /private/var/folders/hz/rgppp8250rsdp86kf_tfjvqw0000gp/T/jffi8502916075702391528.dylib: dlopen(/private/var/folders/hz/rgppp8250rsdp86kf_tfjvqw0000gp/T/jffi8502916075702391528.dylib,:java.lang.UnsatisfiedLinkError: java.lang.UnsatisfiedLinkError 0x0001: java.lang.UnsatisfiedLinkError:'/private/var/folders/hz/rgppp8250rsdp86kf_tfjvqw0000gp/T/jffi8502916075702391528.dylib‘(fat文件,但缺少兼容的体系结构(有'i386,x86_64',需要’arm64e‘),’/usr/lib/ such 8502916075702391528.dylib‘(没有这样的文件)
其他我尝试过的图片:
My java版本:openjdk版本"11.0.13“2021-10-19 LTS
My Docker版本:Docker版本20.10.11,构建dea9396
提前谢谢。
发布于 2022-11-28 15:30:56
两个spotify码头maven插件都不再维护。他们需要将他们的依赖升级到支持aarch64的版本。
在我们的例子中,需要进行大量的重构,以制作8的插件或使用maven exec,所以我们希望继续使用spotify插件。
幸运的是,您可以通过向插件部分添加一个<dependencies>节来强制插件使用特定的依赖项。
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>1.4.6</version>
<dependencies>
<dependency>
<groupId>com.github.jnr</groupId>
<artifactId>jnr-unixsocket</artifactId>
<version>0.38.14</version>
</dependency>
</dependencies>
</plugin>https://stackoverflow.com/questions/71300031
复制相似问题