我正在使用 Build Toolkit 为每个微服务构建 docker 映像。
./build.sh
export DOCKER_BUILDKIT=1
# ....
docker build -t ....
# ...
这适用于我的带有 docker (18.09.2) 的机器。
但是,它不适用于 Jenkins,我设置如下:
EKS 配备了 Terraform 模块
module "eks" { source = "terraform-aws-modules/eks/aws" version = "5.0.0" # .... }
Jenkins通过这个Helm Chart部署在 EKS(
v1.12.10-eks-ffbd9
, ) 上。docker://18.6.1
helm release 中定义的 Jenkins 插件:
- Kubernetes:1.18.1
- 工作流作业:2.33
- 工作流聚合器:2.6
- 凭据绑定:1.19
- 混帐:3.11.0
- 蓝海:1.19.0
- bitbucket-oauth:0.9
Jenkins Pipeline 是声明式的,它使用容器镜像所在的 Pod 模板,
docker:18-dind
容器名称为dind
.这是我的詹金斯文件
pipeline { agent { kubernetes { defaultContainer 'jnlp' yamlFile 'jenkins-pod.yaml' } } stages { stage('Build Backends') { steps { container('dind') { sh 'chmod +x *sh' sh './build.sh -t=dev' } containerLog 'dind' } } }
}
当 Jenkins 执行这个管道时,它会显示这个错误:
buildkit not supported by daemon
我不确定我应该升级哪些软件才能使 docker-buildkit 工作?和哪个版本?
- 现在是 5.0.0 的 Terraform eks 模块?
或者
- docker:18-dind 图像,其行为类似于临时 Jenkins 奴隶的环境?
或者
- 詹金斯插件
kubernetes:1.18.1
?