多模块maven应用程序的java dockerizing?

mu0hgdu0  于 2021-06-29  发布在  Java
关注(0)|答案(2)|浏览(220)

我有一个maven java应用程序,我正在尝试dockerize。到目前为止,我有下面的dockerfile,是我从这个答案复制的。


# 

# Build stage

# 

FROM maven:3.6.0-jdk-11-slim AS build
COPY src /home/app/src
COPY pom.xml /home/app
RUN mvn -f /home/app/pom.xml clean install

EXPOSE 8080 9990

COPY --from=build /usr/src/app/target/helloworld-1.0.0-SNAPSHOT.jar /opt/jboss/jboss-eap-6.2/standalone/deployments/

如果我的应用程序是一个单模块的项目,这将是很好的,但是因为它是多模块的,我假设我不能只使用 COPY src /home/app/src .
如何将dockerfile更改为多模块项目的帐户?
我尝试了以下方法:


# 

# Build stage

# 

FROM maven:3.6.0-jdk-11-slim AS build
COPY module1 /home/app
COPY module2 /home/app
COPY module3  /home/app
COPY pom.xml /home/app
RUN mvn -f /home/app/pom.xml clean install

EXPOSE 8080 9990

COPY --from=build /usr/src/app/target/helloworld-1.0.0-SNAPSHOT.jar /opt/jboss/jboss-eap-6.2/standalone/deployments/

但是,这会在 mvn clean install 阶段:

[ERROR] [ERROR] Some problems were encountered while processing the POMs:
[FATAL] Non-resolvable parent POM for myapp:21.01-SNAPSHOT: Could not find artifact jee6:pom:1.0.1-SNAPSHOT and 'parent.relativePath' points at wrong local POM @ line 8, column 10

请注意 jee6:pom:1.0.1-SNAPSHOT 来自我的本地m2文件夹。

1zmg4dgp

1zmg4dgp1#

您可以有一个附加的集成模块,它依赖于其他模块,负责将组件收集到docker映像中。也是进行集成测试的好地方。

5uzkadbs

5uzkadbs2#

我只会使用maven jib插件,而不是手工制作dockerfile。更容易,它应该与多模块的项目也工作,我认为

相关问题