1

我需要创建一个 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。

提前致谢

4

0 回答 0