如何让 skaffold dev 完全跳过构建镜像?

How to make skaffold dev skip building image entirely?

有没有办法让 skaffold dev 完全跳过图像构建,包括初始图像构建?我有一个预构建的图像。我想让 skaffold 做的就是部署 K8s Deployment 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 VM 上使用 skaffold v1.35.0,部署到通过 Google Cloud Console 创建的远程 GKE 集群版本 1.20.10-gke.1600。在 Google Container Registry (gcr.io) 中存储图像。

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以避免重新构建和重新部署更改的图像。