詹金斯是否缓存依赖项,建设当码头工人层?
我正在开发一个应用程序做出反应,将被放入一个码头工人的形象。我想在自动编译使用詹金斯图像的步骤。
这是我目前Jenkinsfile
...
pipeline {
agent any
stages {
stage('Build') {
steps {
script {
def commitHash = GIT_COMMIT.take(7)
echo 'Building Docker image for commit hash: ' + commitHash
def customImage = docker.build("myImage")
}
}
}
}
}
图像本身创建成功。现在我想知道:1。将詹金斯下载所有的依赖在我package.json
与每个版本? 2.将詹金斯下载所有与每个构建层?
或将詹金斯注意到依赖性和/或图像层已经存在?
回答如下:TL; DR
这要看泊坞窗守护服务生成代理使用。每个搬运工守护进程都有自己的缓存。
更多详解
您使用的是一些插件(docker-workflow
?),它提供了你的管道docker.build()
一步。默认情况下,该功能会尝试使用您代理的本地主机泊坞窗守护进程(通常是试图用插座/var/run/docker.sock
)。您还可以配置管道,其泊坞窗守护与docker.withServer() {}
块里面使用。
守护程序商店/缓存图层,所以只要您使用相同的守护跨越构建那么他们也都有一个共同的缓存。
如果你发布你建立了多个代理和每个代理使用自己的本地主机泊坞窗守护进程,那么它们不共享一个共同的缓存。
该official documentation更详细地解释这一点。他们提到的另一项技术有对你的泊坞窗图像构建(部分Caching data for containers
)生成代理共享本地卷。例如,你可以到连续的码头工人形象建立与安装节点DEPS音量。这样一来,即使你清理你泊坞窗缓存,你不重新下载的每个版本的所有节点DEPS。
不过底线是:詹金斯不会为你自动的缓存。缓存是构建工具(S)所使用的范围内。你必须注意正确的结合,为您的CI环境的需求。不过,当然也有可能实现。
小网站注:这可能是一个好主意,有一个干净的码头工人构建高速缓存中的CI构建。在过去,我们有与我们损坏的旧图像生成泊坞窗缓存麻烦。但是,如果你有一个很长的构建然后缓存清理可能不是一个选择 - 至少不是每个生成后。
詹金斯是否缓存依赖项,建设当码头工人层?
我正在开发一个应用程序做出反应,将被放入一个码头工人的形象。我想在自动编译使用詹金斯图像的步骤。
这是我目前Jenkinsfile
...
pipeline {
agent any
stages {
stage('Build') {
steps {
script {
def commitHash = GIT_COMMIT.take(7)
echo 'Building Docker image for commit hash: ' + commitHash
def customImage = docker.build("myImage")
}
}
}
}
}
图像本身创建成功。现在我想知道:1。将詹金斯下载所有的依赖在我package.json
与每个版本? 2.将詹金斯下载所有与每个构建层?
或将詹金斯注意到依赖性和/或图像层已经存在?
回答如下:TL; DR
这要看泊坞窗守护服务生成代理使用。每个搬运工守护进程都有自己的缓存。
更多详解
您使用的是一些插件(docker-workflow
?),它提供了你的管道docker.build()
一步。默认情况下,该功能会尝试使用您代理的本地主机泊坞窗守护进程(通常是试图用插座/var/run/docker.sock
)。您还可以配置管道,其泊坞窗守护与docker.withServer() {}
块里面使用。
守护程序商店/缓存图层,所以只要您使用相同的守护跨越构建那么他们也都有一个共同的缓存。
如果你发布你建立了多个代理和每个代理使用自己的本地主机泊坞窗守护进程,那么它们不共享一个共同的缓存。
该official documentation更详细地解释这一点。他们提到的另一项技术有对你的泊坞窗图像构建(部分Caching data for containers
)生成代理共享本地卷。例如,你可以到连续的码头工人形象建立与安装节点DEPS音量。这样一来,即使你清理你泊坞窗缓存,你不重新下载的每个版本的所有节点DEPS。
不过底线是:詹金斯不会为你自动的缓存。缓存是构建工具(S)所使用的范围内。你必须注意正确的结合,为您的CI环境的需求。不过,当然也有可能实现。
小网站注:这可能是一个好主意,有一个干净的码头工人构建高速缓存中的CI构建。在过去,我们有与我们损坏的旧图像生成泊坞窗缓存麻烦。但是,如果你有一个很长的构建然后缓存清理可能不是一个选择 - 至少不是每个生成后。