在 .gcloudignore 中包含排除文件夹中的子文件夹

Including a subfolder from an excluded folder in .gcloudignore

我正在尝试使用 gcloud beta run deploy 命令将带有 Docker 文件的节点项目部署到 Google 云 运行。

长话短说,我想在 Docker 文件中的 运行 RUN npm install 之后复制我的本地 node_modules/my-module

COPY node_modules/my-module /app/node_modules/my-module/

(我只在开发时这样做,以避免提交和推送来自 my-module 的每个更改以进行测试)。

不幸的是,Docker 无法复制此目录,因为显然 node_modules 默认情况下未上传到 Cloud Build。

所以我创建了这个 .gcloudignore 文件来覆盖默认值:

.gcloudignore
.git
.gitignore

node_modules/
!node_modules/my-module/

我尝试了很多其他语法,但 none 允许我排除 node_modules 而包含 node_modules/my-module.

但是,我可以通过从 .gcloudignore 文件中省略它来包含整个 node_modules 目录,但这显然需要很长时间才能上传。

你知道我如何将我的本地模块上传到 Cloud Build 吗?

阅读 this Gist's comments 后,我意识到您还必须包括父目录,如下所示:

node_modules/**

!node_modules/
!node_modules/my-module/**

这将从 node_modules 中排除所有子文件夹,除了 my-module 及其内容(** 很重要,否则只会包含空文件夹)。