我是Java和Docker的新手。我有两个Git存储库:
两个存储库都是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等。任何帮助解决这个问题表示赞赏。
答案 0 :(得分:0)
maven local repo是以前版本图片中的一个卷,已在https://github.com/carlossg/docker-maven/pull/57中删除
如果您使用FROM maven:3.5-jdk-8-alpine