Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker文件与jenkins Arfiacty复制问题_Docker_Jenkins_Dockerfile_Jenkins Pipeline_Jenkins Groovy - Fatal编程技术网

Docker文件与jenkins Arfiacty复制问题

Docker文件与jenkins Arfiacty复制问题,docker,jenkins,dockerfile,jenkins-pipeline,jenkins-groovy,Docker,Jenkins,Dockerfile,Jenkins Pipeline,Jenkins Groovy,请参阅下面的Jenkins文件和Dockerfile。我正在尝试构建并将.war文件添加到我在jenkins中创建的docker映像中。但是它给了我一个错误,复制失败:stat/var/lib/docker/tmp/docker-builder785780968/build/libs/demo.war:没有这样的文件或目录。我独立测试了Dockerfile,它工作正常,但jenkins无法找到我的战争地点。我怎样才能告诉詹金斯该去哪里? 谢谢 我认为您混合了两种Jenkins管道功能: 通过Do

请参阅下面的Jenkins文件和Dockerfile。我正在尝试构建并将.war文件添加到我在jenkins中创建的docker映像中。但是它给了我一个错误,
复制失败:stat/var/lib/docker/tmp/docker-builder785780968/build/libs/demo.war:没有这样的文件或目录
。我独立测试了Dockerfile,它工作正常,但jenkins无法找到我的战争地点。我怎样才能告诉詹金斯该去哪里? 谢谢


我认为您混合了两种Jenkins管道功能:

  • 通过Dockerfile自定义Docker代理的Docker执行环境
  • 使用Dockerfile

    对于需要更定制的执行环境的项目, 管道还支持从容器中构建和运行容器 源存储库中的Dockerfile。与前一次相比 使用“现成”容器的方法,使用
    代理{dockerfile true}
    语法将从dockerfile构建一个新映像 而不是从Docker Hub拉一个

  • 从Dockerfile构建应用程序的Docker映像
  • 建筑容器

    为了创建Docker映像,Docker管道插件 提供用于从Dockerfile创建新映像的build()方法 在存储库中,在管道运行期间

    (个人说明:
    建筑容器
    标题应为
    建筑图像

    您想要第二个,因为您在Dockerfile中复制了构建的WAR,但使用了第一个


    从Dockerfile(从文档)构建docker映像的示例:

    在这里,它从
    /dockerfiles/test/Dockerfile
    中找到的Dockerfile构建了一个
    测试图像
    图像
    请注意,
    docker.build
    方法返回一个表示图像的对象。这可能有助于将其推入Docker注册表、在机器上复制或在下一步中运行

    请注意,您现在应该能够参考:

    当Jenkins检测到代理本身正在Docker中运行时 容器,它将自动将--volumes从参数传递到 内部容器,确保它可以与 特工

    若jenkins是作为一个容器启动的,其装载的卷是主机的docker套接字,则可以使用管道的当前上下文更直接地构建映像:

    stage('Docker Build') {
       agent any
       steps {
         sh 'docker build -f your-dockerfile -t your-tag .'
       }
     }
    

    war文件是否存在于您指定的
    /build/…
    目录中的同一个
    ?是否缺少正斜杠
    /build/libs/demo.war
    node {
        checkout scm
        def testImage = docker.build("test-image", "./dockerfiles/test") 
    
        testImage.inside {
            sh 'make test'
        }
    }
    
    stage('Docker Build') {
       agent any
       steps {
         sh 'docker build -f your-dockerfile -t your-tag .'
       }
     }