【发布时间】:2020-01-10 19:58:16
【问题描述】:
我正在使用 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
- git:3.11.0
- blueocean:1.19.0
- bitbucket-oauth:0.9
Jenkins Pipeline 是声明式的,它使用容器镜像为
docker:18-dind,容器名称为dind的Pod 模板。-
这是我的 Jenkins 文件
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 奴隶的环境?
或者
- Jenkins 插件
kubernetes:1.18.1?
【问题讨论】:
-
你能在你的
./build.sh中试试DOCKER_BUILDKIT=1 docker build -t ....吗?
标签: docker jenkins kubernetes terraform docker-buildkit