【问题标题】:Including a subfolder from an excluded folder in .gcloudignore在 .gcloudignore 中包含排除文件夹中的子文件夹
【发布时间】:2021-06-28 06:34:03
【问题描述】:

我正在尝试使用 gcloud beta run deploy 命令将带有 Dockerfile 的 Node 项目部署到 Google Cloud Run。

长话短说,我想在 Dockerfile 中运行 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/

我尝试了很多其他语法,但没有一个允许我排除 node_modules 而包括 node_modules/my-module

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

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

【问题讨论】:

    标签: gcloud google-cloud-run google-cloud-build


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2013-02-15
      • 2012-07-24
      • 2015-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多