共享 Maven 存储库的共享数据量

Sharing data-volume for shared maven repository

我有多个 Maven 项目,其中一个依赖于另一个。这些项目正在专用构建映像中构建,并通过 jenkins 构建。

我的计划是有一个共享数据卷,里面有maven repository文件夹,里面应该存放所有的依赖,我自己的依赖也应该安装在里面。

不幸的是,在建立我的依赖项时,这已经失败了。作为参考,这是我的 Jenkinsfile:

node {

    stage ('Initializing') {
        checkout scm
    }

    stage ('Build Artifact') {
        sh 'docker build -f="Dockerfile"  -t build-image .'
        sh 'docker create --name build-james-plugin-interface --volume m2-repo:/root/.m2 build-image'
        sh 'docker rm build-james-plugin-interface'
    }
}

这是我的构建镜像的 Dockerfile:

FROM qnerd/rpi-maven

ENV BUILD_HOME=/usr/local/james/

RUN mkdir -p $BUILD_HOME
WORKDIR $BUILD_HOME
ADD pom.xml $BUILD_HOME

# add source
ADD . $BUILD_HOME

# run maven verify
ENTRYPOINT ["mvn","clean","install"]

我的数据卷的文件夹一直是空的,所以我的文件可能有一些错误。

希望你能帮帮我。

问题是您正在创建构建映像的容器,然后将其删除。 Create 不会 运行 容器,它只是创建它。所以要么使用

sh 'docker run --name build-james-plugin-interface --volume m2-repo:/root/.m2 build-image'

或添加一个

sh 'docker start build-james-plugin-interface' 

创建命令后。