kubernetes - skaffold 找不到它刚刚构建的图像
问题描述
我有以下脚手架
build:
tagPolicy:
sha256: {}
artifacts:
- image : sdk
context: docker
docker:
dockerfile: Dockerfile.sdk
buildArgs:
CONFIGURATION: Debug
- image : app
context: docker
docker:
dockerfile: Dockerfile.app
buildArgs:
CONFIGURATION: Debug
- image: azu
context: rt/azu/src
docker:
dockerfile: Dockerfile.worker
buildArgs:
VERSION : Debug
前两个图像构建得很好。而第三个失败。第二个构建取决于第一个,第三个取决于第二个。然而,第三个失败了,"MANIFEST_UNKNOWN: manifest unknown"
因为它试图从 docker hub 中检索它。如果我将第三个构建的上下文更改为 docker(这将使镜像构建失败),skaffold 会找到本地镜像。我能做些什么来保持正确的上下文并让 skaffold 意识到它不应该从 docker hub 中提取,而是使用本地构建的图像?
解决方案
(顺便说一句:如果你不包括你的完整skaffold.yaml
和你Dockerfile
的 s 就很难提供帮助。只需编辑私密的部分。)
Skaffold“只是”编排构建,并且对底层构建器如何解析图像没有影响。但 Skaffold确实指示底层构建器应如何标记生成的图像。Skaffold 提供了一组标记策略。
所以听起来你rt/azu/src/Dockerfile.worker
的 aFROM
没有引用你的app
图像——也许图像的标记与你引用的不同。Skaffold 的默认标记器使用 git 提交,从而产生像app:v1.12.0-37-g6af3198f3-dirty
.
如果我的怀疑是真的,那么您将需要使用envTemplate
标记器,以便您构建的图像使用更可控和可预测的图像标记,您可以将其嵌入到您Dockerfile
的 s.
推荐阅读
- android - React Native 0.61.5 应用程序从 0.61.4 升级后一直停止
- google-apps-script - 谷歌照片API添加照片不起作用,上传似乎工作
- javascript - 我的页面出现问题,因为 onclick 音频不工作
- javascript - 使用 Lodash 从嵌套数组中删除对象
- visual-studio - 升级后Unity编译错误
- laravel - 我可以在通过 laravel 发送电子邮件时将隐藏的令牌放入电子邮件中吗
- json - 如何修复将 yaml 转换为 JSON 的 YAML 文件中的错误?在这种情况下不允许映射值”
- c# - 如何在鼠标路径上生成对象?统一 3D
- jooq - 绑定 OffsetDateTime 时出错 [运算符不存在:带时区的时间戳 <= 字符变化]
- ios - Alamofire 和 api 密钥有问题