我需要创建一个 docker 文件并为 maven 项目构建 docker 映像,其中包括来自 conf/settigs.xml 的 setting.xml(用于远程存储库配置)
所以我正在尝试学习如何使用 maven、spring-boot 和 docker 来创建 web 应用程序。
我尝试使用 Maven 插件。我包含在 pom.xml 文件中。
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.5</version>
<configuration>
<repository>${project.artifactId}</repository> <!-- ${project.artifactId} is a good choice -->
<tag>${project.version}</tag>
<baseImage>java</baseImage>
<entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<dependencies>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
</dependency>
</dependencies>
</plugin>
</plugins>
码头工人文件
#
# Build stage
#
FROM maven:3.6.3-0penjdk:11-jdk AS build
COPY src /home/app/src
COPY pom.xml /home/app
RUN mvn -f /home/app/pom.xml clean package
#
# Package stage
#
FROM openjdk:11-jre-slim
COPY --from=build /home/app/target/demo-0.0.1-SNAPSHOT.jar /usr/local/lib/demo.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","/usr/local/lib/demo.jar"]
但我面临问题。在运行命令mvn clean install dockerfile:build
正在创建没有名称和标签的 Docker 映像。我假设它将从存储库中获取值,并从插件配置中获取标签元素。但不确定。
将构建没有名称的图像
我正在使用 java 11 和 maven 3.6.3 版本。
任何人都请建议为 Maven 项目创建 docker 文件的最佳方法,并参考配置的远程存储库 conf/settings.xml。
提前致谢