Docker镜像无法从另一个图像中读取/找到.jar文件?

时间:2018-01-03 10:22:46

标签: java maven docker

我是Java和Docker的新手。我有两个Git存储库:

  • 项目-CMS
  • 项目应用

两个存储库都是Java项目。我的指示是来自project-cms的mvn clean install,然后来自project-app的mvn clean install && mvn build,以便project-app可以使用project-cms生成的.war文件。我试图通过创建像这样的项目cms的图像来Dockerize这个设置:

FROM maven:3.5.2-jdk-8-alpine
LABEL Name=project-cms Version=1.0.0 

# Container configuration
RUN mkdir /project-cms
COPY . /project-cms
WORKDIR /project-cms
VOLUME /project-cms
RUN mvn clean install

这很好用,我现在看到一个名为project-cms的图像:当我docker image ls时最新。我正在尝试使用此图像来构建我的项目应用程序:

FROM project-cms:latest
LABEL Name=project-app Version=1.0.0 

# Container configuration
RUN mkdir /app
COPY . /app
WORKDIR /app
VOLUME /app
RUN mvn clean install && mvn build
EXPOSE 8080
CMD [ "mvn", "tomcat7:run" ]

我的理解是,project-cms的.war文件应该可以用于project-app,因为我在上面运行FROM project-cms:latest。当我尝试构建此图像时,它会引发以下错误:

[ERROR] Failed to execute goal on project xxxx: Could not resolve dependencies for project com.xxxx:xxxx:war:2.28.1: Could not find artifact com.xxxx:publishing-site:jar:classes:1.02.26 in hippo (http://maven.onehippo.com/maven2/) -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException
The command '/bin/sh -c mvn clean install && mvn build' returned a non-zero code: 1

请注意,我在上面的错误消息中使用xxxx编辑了实际项目名称。我的想法是在我们的AWS Elastic容器服务中托管项目-cms Docker镜像,以便其他开发人员可以将该图像拉出来构建项目应用程序,而不是在每台开发人员机器上手动安装Maven等。任何帮助解决这个问题表示赞赏。

1 个答案:

答案 0 :(得分:0)

maven local repo是以前版本图片中的一个卷,已在https://github.com/carlossg/docker-maven/pull/57中删除

如果您使用FROM maven:3.5-jdk-8-alpine

,它应该可以使用