kubernetes 从skaffold监视中忽略文件夹/文件

5t7ly7z5  于 9个月前  发布在  Kubernetes
关注(0)|答案(2)|浏览(72)

我正在使用skaffold来运行我的typescript应用程序,并在Kubernetes中使用Helm。下面是我的skaffold构建配置。

apiVersion: skaffold/v2beta8
kind: Config
build:
  local: 
    push: false
  tagPolicy:
    gitCommit:
      variant: CommitSha
      prefix: commit-
  artifacts: 
  - image: my-app
    sync:
      infer: 
        - '**/**/*.ts'
        - '**/**/*.json'

因此,每当我启动应用程序时,应用程序在更新时同步我的TS和JSON文件,而不是这些文件,它将重建应用程序。我的根结构中有一个“build”文件夹。我已经安装在Kubernetes pod上,所以每当应用程序构建时,我都会在本地获得最新的构建代码,这将有助于调试应用程序。但由于这个应用程序不断重建,因为skaffold在build文件夹中发现了变化。那么,如何忽略文件夹/文件为skaffold手表?我试图使用buildpacks.dependencies,但它不会工作(给出错误的构建器图像定义)。有人能帮帮我吗?
谢谢.

v2g6jxz6

v2g6jxz61#

在您的示例中,您使用的是Skaffold的docker构建器。Skaffold的文件监视器尊重.dockerignore文件中的值。

qoefvg9y

qoefvg9y2#

无论好坏,我正在利用手动同步选项,以便Skaffold在本地文件更改时不会执行Docker构建:

image: some-image
docker:
  dockerfile: Dockerfile
sync:
  manual:
    - src: 'some-file'
      dest: /some-directory-on-the-container

当主机上的some-file发生更改时(无论出于何种原因),Skaffold会将该文件复制到正在运行的容器中,并绕过重建。我不关心它被复制到运行容器的哪里。
不是这个机制的目的,但它解决了一个问题。我实际上在第一个Docker构建中需要some-file,所以我不能把它放在.dockerignore中。
Skaffold同步->文件同步->手动同步模式

相关问题