Пользовательская (или последняя) версия npm в Google Cloud Builder

Я использую Google Cloud Builder (GCB) для создания кода Node.js. Я использую новую функцию npm package-lock.json для закрепления зависимостей. Лучше всего это работает при использовании команды npm ci, представленной в [email protected]. К сожалению, все изображения GCB npm в настоящее время установлено значение [email protected]

Как я могу использовать другую версию npm в GCB без создания собственного образа сборки?

Редактировать: может быть не так, что все изображения GCB установлены на [email protected], но тот, который мне нужно использовать (node-8.11.0), установлен на эту версию.


person Nicolas Kleiderer    schedule 01.08.2018    source источник


Ответы (1)


Я решил проблему, создав собственный образ контейнера на основе образа npm сборщика облаков.

Докерфайл:

FROM gcr.io/cloud-builders/npm:node-8.11.0

ARG NPM_VERSION
RUN npm i -g npm@${NPM_VERSION}

ENTRYPOINT ["npm"]

облачная сборка.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'

Я запустил gcloud builds submit . --config=cloudbuild.yaml из той же папки, содержащей файлы Dockerfile и cloudbuild.yaml. Это отправило сборку в GCB и разместило изображение в реестре контейнеров моего проекта. Затем я использовал это изображение в другом моем проекте cloudbuild.yaml, которому требовалась обновленная версия npm, например:

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

После этого все работает как положено.

person Nicolas Kleiderer    schedule 01.08.2018