【问题标题】:Custom (or latest) npm version in Google Cloud BuilderGoogle Cloud Builder 中的自定义(或最新)npm 版本
【发布时间】:2018-08-01 18:05:20
【问题描述】:

我正在使用 Google Cloud Builder (GCB) 构建一些 Node.js 代码。我正在使用 npm 的新 package-lock.json 功能来固定依赖项。这在使用npm@5.7.1 中引入的npm ci 命令时效果最佳。不幸的是,所有GCB's npm images 目前都设置为npm@5.6.0

如何在不创建自定义构建器映像的情况下在 GCB 中使用不同的 npm 版本?

编辑:可能并非所有 GCB 的图像都设置为 npm@5.6.0,但我需要使用的图像 (node-8.11.0) 设置为此版本。

【问题讨论】:

    标签: npm google-container-builder google-cloud-build


    【解决方案1】:

    我通过基于 cloud-builder 的 npm 映像创建自己的容器映像解决了这个问题。

    Dockerfile:

    FROM gcr.io/cloud-builders/npm:node-8.11.0
    
    ARG NPM_VERSION
    RUN npm i -g npm@${NPM_VERSION}
    
    ENTRYPOINT ["npm"]
    

    cloudbuild.yaml:

    steps:
    - name: 'gcr.io/cloud-builders/docker'
      args:
      - 'build'
      - '--build-arg=NPM_VERSION=latest'
      - '--tag=gcr.io/$PROJECT_ID/npm:latest'
      - '.'
    
    images:
    - 'gcr.io/$PROJECT_ID/npm:latest'
    

    我从包含Dockerfilecloudbuild.yaml 文件的同一文件夹中运行gcloud builds submit . --config=cloudbuild.yaml。这将构建提交给 GCB 并在我项目的容器注册表中发布了一个图像。然后我在需要升级 npm 版本的其他项目的 cloudbuild.yaml 中使用了这张图片,如下所示:

    steps:
    - id: frontend_install
      name: 'gcr.io/$PROJECT_ID/npm:latest'
      args: ['ci']
      waitFor: ['-']
    

    完成此操作后,一切都按预期工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-11
      • 1970-01-01
      • 2017-05-05
      • 1970-01-01
      • 2021-10-14
      • 1970-01-01
      • 2017-01-23
      • 2021-02-07
      相关资源
      最近更新 更多