5

我想在运行之前运行一个命令从远程存储库克隆一个脚本,skaffold dev我需要以某种方式注入一个git clone命令或将 git clone 命令和相应的参数放在 shell 脚本中,然后使用 Skaffold 运行 shell 脚本。

从 Skaffold 工作流程的角度来看,此步骤应在构建之前运行。我在构建阶段使用 Jib,看来 Jib 状态并没有给我任何在实际构建之前运行脚本的能力。我不知道是否可以在 Skaffold 生命周期中添加一个新阶段,例如pre-build. 我想到的一种解决方案是使用custombuild 而不是Jib将所有预构建命令以及与 jib 相关的命令放在一个脚本中运行。这种方法可能有效,但不会很方便。我想知道是否有更好的方法来使用 Skaffold 做到这一点。

build:
  artifacts:
    - image: gcr.io/k8s-skaffold/example
      custom:
        buildCommand: ./prebuild-and-build.sh
4

1 回答 1

1

skaffold 支持生命周期钩子,允许在构建之前/之后运行自定义脚本 - https://skaffold.dev/docs/pipeline-stages/lifecycle-hooks/

有了这个,你应该能够在你的 skaffold.yaml 中添加一个类似于这样的节:

build:
  artifacts:
  - image: gcr.io/k8s-skaffold/example
    hooks:
      before:
        - command: ["sh", "-c", "./prebuild-and-build.sh"]
          os: [darwin, linux]
        # - command: # ...TODO
        #   os: [windows]

注意:此功能相对较新,请务必使用最新的 skaffold 版本(撰写本文时为 v1.33.0)以获得此功能

于 2021-10-26T17:41:43.033 回答