docker - 带有docker卷的maven存储库映射不起作用
问题描述
我正在尝试在 maven docker 文件中使用 /root/.m2 目录挂载主机目录。目的是避免在每次构建时下载依赖项。但不知何故,maven 正在下载每个 docker build 的依赖项。我可以看到映射的主机目录是空的。
这是我的 Docker 撰写文件:
version: "2"
services:
database:
build:
context: ./database
dockerfile: Dockerfile
ports:
- "1433:1433"
dynamodb-local:
image: amazon/dynamodb-local
ports:
- "8000:8000"
my-hub:
depends_on:
- "database"
- "dynamodb-local"
volumes:
- ./target/m2-repo:/root/.m2 #either this mapping is not working or mvn is not considering this directory for cache, so its downloading dependencies for each build.
- ./target/log:/opt/jboss/wildfly/standalone/log #this is working, I can see logs
build: ./my-hub
ports:
- "8080:8080"
这是我的 Dockerfile for maven,它的多阶段构建文件。
FROM maven:3.8.1-jdk-11 AS mvn-img
# Declaring expected volumes
VOLUME ["/root/.m2", "/opt/jboss/wildfly/standalone/log"]
COPY ./ /usr/src/my-hub
WORKDIR /usr/src/my-hub
#/root/.m2 volume mapping with host is not working, so its downloading the dependencies with each build.
RUN mvn clean package -DskipTests
FROM jboss/wildfly:24.0.0.Final
.
.
.
other part all working....
我尝试了其他方法,例如使用 -Dmaven.repo.local 手动设置 repo 路径。但不工作,如果我做错了什么,请告诉我,我不知道。谢谢你。
解决方案
推荐阅读
- java - 数组未按预期初始化
- android - Android - 如何实现无暂停/延迟的振动模式?
- sql - 如何计算取决于月份的值
- sql - 找不到sas的日志中指出的错误在哪里
- .net - 运行 dotnet test --collect "Code coverage" 时如何设置自定义覆盖结果文件路径?
- php - POST 请求在 POSTMAN 上工作,但不在 PHP 中
- encryption - 从服务将加密文件存储在磁盘上
- ruby-on-rails - rails 6 和 vue.js 新项目失败
- android - 如何通过 navArgs 将参数传递给详细 ViewModel
- javascript - 如何以与使用提交按钮时相同的格式发送带有 FormData 的 POST XHR 请求?