【问题标题】:How to make skaffold dev skip building image entirely?如何让 skaffold dev 完全跳过构建图像?
【发布时间】:2021-11-21 16:48:33
【问题描述】:

有没有办法让skaffold dev 完全跳过图像构建,包括最初的构建?我有一个预建的图像。我想要 skaffold 做的就是部署 K8s 部署 YAML 文件并将本地文件同步到它。我找不到如何做到这一点的工作示例。最接近的是 this one,但它假定初始映像构建。

skaffold dev --auto-build=false 静止构建。

我的skaffold.yaml

apiVersion: skaffold/v2beta26
kind: Config
build:
  artifacts:
  - image: gcr.io/my-project/my-repo
    context: .
    sync:
      infer: ["**/*"]
deploy:
  kubectl:
    manifests:
    - skaffold/*.yaml
skaffold dev --auto-build=false --default-repo gcr.io/my-project

Listing files to watch...
 - gcr.io/my-project/my-repo
Generating tags...
 - gcr.io/my-project/my-repo -> gcr.io/my-project/my-repo:v0.7.4-182-gb47cd3b5-dirty
Checking cache...
 - gcr.io/my-project/my-repo: Not found. Building
Starting build...
Building [gcr.io/my-project/my-repo]...

更新:在 Ubuntu 虚拟机上使用 skaffold v1.35.0,部署到通过 Google Cloud Console 创建的远程 GKE 集群版本 1.20.10-gke.1600。将图像存储在 Google Container Registry (gcr.io) 中。

【问题讨论】:

  • 您使用的是哪个版本的 Kubernetes,您是如何设置集群的?您是使用裸机安装还是某些云提供商?
  • @kkopczak 感谢您的提问。更新

标签: kubernetes skaffold


【解决方案1】:

Skaffold 的build.local.tryImportMissing: true 设置将导致 Skaffold 使用已标记的图像(如果已存在)。在上面的示例中,Skaffold 将查找 gcr.io/my-project/my-repo:v0.7.4-182-gb47cd3b5-dirty

您可以将tryImportMissingskaffold dev --tag {fixed-tag} 参数结合使用以覆盖标记策略以指定固定标记。

并且skaffold dev 还支持--auto-build=false --auto-deploy=false 以避免重新构建和重新部署更改的映像。

【讨论】:

  • 谢谢!添加tryImportMissing--tag 有效!不知道为什么--auto-build=false 没有采用我原来的方法。
  • 我注意到 skaffold 仍然期望一个相对于 build.artifacts[].context 的 Dockerfile。有没有办法不需要那个或本地 Docker 守护进程?
  • Skaffold 默认将工件视为 docker 构建。您可以指定不同的构建器,例如自定义构建器。
  • 是的!这是我想出的最后一件事github.com/davidxia/skaffold-no-docker-just-sync
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-06
  • 2022-12-17
  • 2020-10-23
  • 1970-01-01
相关资源
最近更新 更多