Concourse 7.1执行fly任务报错:未找到docker-image基础资源类型
报错根因
- Concourse 7.0版本起调整了内置资源的交付逻辑,
docker-image这类常用基础资源不再随核心组件默认内置加载,需要手动在集群中完成注册才能调用 - 参考的教程适配的是Concourse 6.x及更早版本的运行逻辑,和7.1版本的默认配置不兼容,因此执行任务时会触发
base resource type not found: docker-image的报错
修复步骤
- 打开当前docker-compose使用的部署配置文件,为web、worker组件统一追加全局基础资源类型的环境变量,配置内容为:
注:CONCOURSE_BASE_RESOURCE_TYPES: | - name: docker-image type: registry-image source: repository: concourse/docker-image-resource tag: latestregistry-image是Concourse核心原生保留的内置资源,不需要额外注册即可正常拉取镜像 - 保存配置后执行
docker-compose up -d重启Concourse全部服务,等待服务完成镜像拉取和初始化 - 重新执行原命令验证运行效果:
fly -t tutorial execute -c task_hello_world.yml
补充:也可以选择在每个独立的task yml文件中手动声明docker-image资源类型,但这种方式会导致每次构建都重复拉取对应资源镜像,长期运行的资源开销更高,全局注册的方式更适合长期部署使用。
内容的提问来源于stack exchange,提问作者Harsh8V
相关产品推荐
相关产品推荐

