安装卷是多阶段构建的一部分

时间:2018-07-05 15:11:34

标签: docker docker-compose

如何安装卷来存储我的.m2存储库,这样我就不必在每个版本上都下载Internet?

我的构建是一个多阶段构建:

FROM maven:3.5-jdk-8 as BUILD

COPY . /usr/src/app
RUN mvn --batch-mode -f /usr/src/app/pom.xml clean package

FROM openjdk:8-jdk
COPY --from=BUILD /usr/src/app/target /opt/target
WORKDIR /opt/target

CMD ["/bin/bash", "-c", "find -type f -name '*.jar' | xargs java -jar"]

1 个答案:

答案 0 :(得分:9)

您可以使用Docker> 18.09和BuildKit来实现。您需要启用BuildKit:

export DOCKER_BUILDKIT=1

然后,您需要通过添加Dockerfile作为第一行来启用实验性dockerfile前端功能:

# syntax=docker/dockerfile:experimental

之后,您可以使用高速缓存装入调用RUN命令。缓存安装在构建期间保持持久:

RUN --mount=type=cache,target=/root/.m2 \
    mvn --batch-mode -f /usr/src/app/pom.xml clean package