首页 > 解决方案 > 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 依赖项,而不在容器运行时再次下载依赖项?

先感谢您。

标签: javadockermavendockerfile

解决方案


尝试

FROM maven:3.6.3-ibmjava-8

WORKDIR /tests

COPY . .

RUN mvn dependency:go-offline

CMD mvn --offline -Dtest=SimpleTest test


推荐阅读