Docker文件与jenkins Arfiacty复制问题
请参阅下面的Jenkins文件和Dockerfile。我正在尝试构建并将.war文件添加到我在jenkins中创建的docker映像中。但是它给了我一个错误,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
复制失败:stat/var/lib/docker/tmp/docker-builder785780968/build/libs/demo.war:没有这样的文件或目录
。我独立测试了Dockerfile,它工作正常,但jenkins无法找到我的战争地点。我怎样才能告诉詹金斯该去哪里?
谢谢
我认为您混合了两种Jenkins管道功能:
代理{dockerfile true}
语法将从dockerfile构建一个新映像
而不是从Docker Hub拉一个
建筑容器
标题应为建筑图像
)
您想要第二个,因为您在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 .'
}
}