Maven 在构建阶段将.m2文件绑定到docker
我尝试在docker容器中基于下面的docker文件构建一个spring引导项目,但每次都是从internet下载所有mvn依赖项。 在构建docker文件时,如何绑定本地.m2文件 这是我的DockerfileMaven 在构建阶段将.m2文件绑定到docker,maven,docker,spring-boot,dockerfile,Maven,Docker,Spring Boot,Dockerfile,我尝试在docker容器中基于下面的docker文件构建一个spring引导项目,但每次都是从internet下载所有mvn依赖项。 在构建docker文件时,如何绑定本地.m2文件 这是我的Dockerfile FROM maven:3.5-jdk-8-alpine AS build COPY /src /usr/src/javaspring/src COPY pom.xml /usr/src/javaspring COPY Dockerfile /usr/src/javaspring RU
FROM maven:3.5-jdk-8-alpine AS build
COPY /src /usr/src/javaspring/src
COPY pom.xml /usr/src/javaspring
COPY Dockerfile /usr/src/javaspring
RUN mvn -f /usr/src/javaspring/pom.xml clean install
FROM openjdk:8-jre-alpine
COPY --from=build /usr/src/javaspring/target/javaspring-1.0.jar app.jar
ENTRYPOINT [“java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
您应该将项目内容装载到docker映像中,并将
$HOME/.m2/
装载到映像中,而不是将所有内容复制到映像中并构建新映像
$PWD
是您的pom.xml
文件所在的本地目录,src
目录存在
docker run -it --rm \
-v "$PWD":/usr/src/mymaven \ (1)
-v "$HOME/.m2":/root/.m2 \ (2)
-v "$PWD/target:/usr/src/mymaven/target" \ (3)
-w /usr/src/mymaven \ (4)
maven:3.5-jdk-8-alpine \ (5)
mvn clean package
pom.xml
所在的工作目录的位置李>
docker run -it --rm \
-v "$PWD":/usr/src/mymaven \
-v "$HOME/.m2":/root/.m2 \
-v "$PWD/target:/usr/src/mymaven/target" \
-w /usr/src/mymaven \
maven:3.5-jdk-8-alpine mvn clean package
卷和绑定装载在容器运行时应用,而不是在构建docker时应用image@Sathya对但是这是将我的local.m2装载到docker文件中运行的docker的方法吗谢谢。但docker运行命令,我的情况不同。我添加了新代码。我想现在你可以了解情况了。当我们使用docker运行命令时,我们可以装载文件夹。但是,当我们在docker文件中使用run命令时,它无法执行。你所说的
我添加新代码是什么意思?
。当然,如果你更改了自己的项目?…sry我更改了我的docker文件。运行时:-(docker build。)每次下载所有与maven相关的内容。我可以将本地m2与docker build链接吗