【发布时间】:2018-01-03 10:22:45
【问题描述】:
我是 Java 和 Docker 的新手。我有两个 Git 存储库:
- 项目-cms
- 项目应用
两个存储库都是 Java 项目。我的指示是从 project-cms 到 mvn clean install,然后从 project-app 到 mvn clean install && mvn build,以便 project-app 可以使用 project-cms 生成的 .war 文件。我正在尝试通过像这样创建 project-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
这很好用,当我执行docker image ls 时,我现在看到了一个名为 project-cms:latest 的图像。我正在尝试使用此图像来构建我的项目应用程序,如下所示:
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 Container Service 中托管 project-cms Docker 映像,以便其他开发人员可以直接提取该映像来构建项目应用程序,而不是在每台开发人员机器上手动安装 Maven 等。任何解决此问题的帮助表示赞赏。
【问题讨论】: