java - Maven 和 Dockerfile - 下载容器创建的依赖项
问题描述
我想用 Maven 在 Docker 容器中对 Java + TestNG 运行测试。我试图让 Maven 在通过 Dockerfile 创建图像时下载所有依赖项。所以它不应该在容器运行时下载它。
我有两个不能正常工作的 Dockerfile 变体。
FROM maven:3.6.3-ibmjava-8
WORKDIR /tests
COPY . .
RUN mvn dependency:resolve -q
CMD mvn -Dtest=SimpleTest test
这里 Maven 在创建镜像时在 RUN 中下载依赖项,并在容器运行时再次下载。о_О
FROM maven:3.6.3-ibmjava-8
WORKDIR /tests
COPY . .
RUN mvn install -q
CMD mvn -Dtest=SimpleTest test
在这里,Maven 不仅尝试下载依赖项,还尝试在 RUN 阶段启动测试。
如何在创建映像(在 RUN 阶段)并启动测试时只下载一次 Maven 依赖项,而不在容器运行时再次下载依赖项?
先感谢您。
解决方案
尝试
FROM maven:3.6.3-ibmjava-8
WORKDIR /tests
COPY . .
RUN mvn dependency:go-offline
CMD mvn --offline -Dtest=SimpleTest test
推荐阅读
- c# - 如何创建从信号开始并休息的工作线程
- node.js - submodule 不是 git 命令(在 Windows 的 GIT 上使用 NPM)
- php - 如何修复模型更新时的尾随数据错误
- python - 如何在 Python 中正确打印位板
- javascript - 当我多次单击添加按钮时,它应该显示我在这里 div 多次删除按钮
- angular - Angular Universal 两次请求
- javascript - 如何在js中访问和替换标签和嵌套标签内的文本,站点上的元素(不是我的)
- php - PHP API 对象查询
- keras - 如何使用重复向量来预测输出序列?
- java - 添加到可迭代的链接集?