Node.js 运行时是否需要将节点“U模块添加到.gcloudignore”中;gcloud builds submit./项目文件夹";?

Node.js 运行时是否需要将节点“U模块添加到.gcloudignore”中;gcloud builds submit./项目文件夹";?,node.js,docker,node-modules,gcloud,google-cloud-build,Node.js,Docker,Node Modules,Gcloud,Google Cloud Build,这是我的项目结构: project/ node_modules/ src/ .gcloudignore cloudbuild.yaml Dockerfile package.json 以下是我如何构建它: gcloud builds submit ./project --config=./project/cloudbuild.yaml --project=$PROJECT_ID // AND SOME SUBSTITUTIONS 这是我的cloudbuild.ya

这是我的项目结构:

project/
  node_modules/
  src/
  .gcloudignore
  cloudbuild.yaml
  Dockerfile
  package.json
以下是我如何构建它:

gcloud builds submit ./project --config=./project/cloudbuild.yaml --project=$PROJECT_ID   // AND SOME SUBSTITUTIONS
这是我的
cloudbuild.yaml
文件:

steps:
  # BUILD IMAGE
  - name: "gcr.io/cloud-builders/docker"
    args:
      - "build"
      - "--tag"
      - "gcr.io/$PROJECT_ID/$_SERVICE_NAME:$_TAG_NAME"
      - "."
    timeout: 180s

    # PUSH IMAGE TO REGISTRY
  - name: "gcr.io/cloud-builders/docker"
    args:
      - "push"
      - "gcr.io/$PROJECT_ID/$_SERVICE_NAME:$_TAG_NAME"
    timeout: 180s

    # DEPLOY CONTAINER WITH GCLOUD
  - name: "gcr.io/google.com/cloudsdktool/cloud-sdk"
    entrypoint: gcloud
    args:
      - "run"
      - "deploy"
      - "$_SERVICE_NAME"
      - "--image=gcr.io/$PROJECT_ID/$_SERVICE_NAME:$_TAG_NAME"
      - "--platform=managed"
      - "--region=$_REGION"
      - "--port=8080"
      - "--allow-unauthenticated"
    timeout: 180s

# DOCKER IMAGES TO BE PUSHED TO CONTAINER REGISTRY
images: 
  - "gcr.io/$PROJECT_ID/$_SERVICE_NAME:$_TAG_NAME"
这是我的
Dockerfile

FROM node:12-slim

WORKDIR /

COPY ./package.json ./package.json
COPY ./package-lock.json ./package-lock.json

COPY ./src ./src

RUN npm ci
从我的配置文件中,由于没有人要求
复制
node\u modules
文件夹,因此似乎没有必要将
node\u modules
添加到
.gcloudignore
。但是是吗

我问这个是因为我看到这个说:

运行gcloud builds submit时。。。您可以提供一些源代码和Dockerfile或配置文件。前者是第二个的一个简单例子,一个包含运行docker build的单个步骤的配置文件

配置文件(YAML)列出了一系列容器映像,其中包含以串联方式运行的参数。最初,Cloud Build将指定的源(可以是当前目录)复制到计算引擎VM(由服务创建)作为目录(自动装入每个容器)作为/workspace


如果它复制源,它是否也会复制
node\u模块
?我应该将其添加到
.gcloudignore
还是没有必要?

是的,您可以跳过节点模块,因为您在构建中不使用它们(而且它的上传量很大,而且很长)。在您的命令
npmci
中,我确信您下载了依赖项,因此,将
node\u模块添加到
.gcloudignore
(以及
.gitignore
中)

是的,您可以跳过节点模块,因为您在构建中不使用它们(而且上传起来又大又长)。在您的命令
npm ci
中,我确信您下载了依赖项,因此,请将
node\u模块添加到
.gcloudignore
(还有
.gitignore
中)

谢谢。但我还是有点困惑。在这种情况下,是否必须将其添加到
.gcloudignore
?如果我不去,会不会有麻烦?默认情况下,
.gitignore
中已经添加了它。
.gcloudignore
是对
.gitignore
的补充。如果在
.gitignore
中排除了
节点\u模块
,则无需将其也添加到
.gcloudignore
中,谢谢。但我还是有点困惑。在这种情况下,是否必须将其添加到
.gcloudignore
?如果我不去,会不会有麻烦?默认情况下,
.gitignore
中已经添加了它。
.gcloudignore
是对
.gitignore
的补充。如果在
.gitignore
中排除
节点\u模块
,则无需将其也添加到
.gcloudignore