Google Cloud Builder中的自定义(或最新)npm版本



我正在使用Google Cloud Builder(GCB(来构建一些Node.js代码。我正在使用npm的新package-lock.json特性来固定依赖关系。这在使用npm@5.7.1中引入的npm ci命令时效果最佳。不幸的是,GCB的所有npm图像当前都设置为npm@5.6.0

如何在GCB中使用不同的npm版本而不创建自定义生成器映像?

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

我通过基于云构建器的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,并在我的项目的容器注册表中发布了一张图片。然后,我在我的另一个项目的cloudbuild.yaml中使用了这个图像,该项目需要升级的npm版本,如下所示:

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

这样做之后,一切都如预期的那样工作。

相关内容

  • 没有找到相关文章

最新更新