我正在尝试在 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>
Run Code Online (Sandbox Code Playgroud)
FROM openjdk:8-jdk-alpine
VOLUME /tmp
EXPOSE 8080
ADD target/*.jar app.jar
ENTRYPOINT [ "sh", "-c", "java -jar /app.jar" ]
Run Code Online (Sandbox Code Playgroud)
但它失败了,总是得到相同的错误跟踪,无论我使用哪个图像,错误仍然存在。
错误:
引起原因:com.spotify.docker.client.shaded.javax.ws.rs.ProcessingException:java.lang.UnsatisfiedLinkError:无法加载 FFI 提供程序 jnr.ffi.provider.jffi.Provider
引起:java.lang.UnsatisfiedLinkError:java.lang.UnsatisfiedLinkError:/private/var/folders/hz/rgppp8250rsdp86kf_tfjvqw0000gp/T/jffi8502916075702391528.dylib:dlopen(/private/var/folders/hz/rgppp8250rsdp 86kf_tfjvqw0000gp/T/jffi8502916075702391528.dylib ,0x0001):尝试:'/private/var/folders/hz/rgppp8250rsdp86kf_tfjvqw0000gp/T/jffi8502916075702391528.dylib'(胖文件,但缺少兼容的体系结构(有'i386,x86_64',需要'arm64e')),'/usr /lib/jffi8502916075702391528.dylib'(没有这样的文件)
我尝试过的其他图像:
我的java版本:openjdk版本“11.0.13”2021-10-19 LTS
我的 Docker 版本:Docker 版本 20.10.11,内部版本 …
我正在尝试使用 Lombok 和 MapStruct 配置 SpringBoot (v2.6.2),已经配置了 Maven 编译器插件和 lombok-mapstruct-binding (annotationProcessorPaths),但没有创建 lombok 类:
pom.xml
*<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.2</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>io.knowledge</groupId>
<artifactId>knowledge</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>knowledge</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>11</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.target>11</maven.compiler.target>
<maven.compiler.source>11</maven.compiler.source>
<version.mapstruct>1.4.1.Final</version.mapstruct>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</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>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
<version>${version.mapstruct}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude> …Run Code Online (Sandbox Code Playgroud)