我正在使用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,但它不会工作(给出错误的构建器图像定义)。有人能帮帮我吗?
谢谢.
2条答案
按热度按时间v2g6jxz61#
在您的示例中,您使用的是Skaffold的
docker
构建器。Skaffold的文件监视器尊重.dockerignore
文件中的值。qoefvg9y2#
无论好坏,我正在利用手动同步选项,以便Skaffold在本地文件更改时不会执行Docker构建:
当主机上的
some-file
发生更改时(无论出于何种原因),Skaffold会将该文件复制到正在运行的容器中,并绕过重建。我不关心它被复制到运行容器的哪里。不是这个机制的目的,但它解决了一个问题。我实际上在第一个Docker构建中需要
some-file
,所以我不能把它放在.dockerignore
中。Skaffold同步->文件同步->手动同步模式