Gitlab CI - npm 'не распознается как внутренняя или внешняя команда, работающая программа или командный файл - PullRequest
0 голосов
/ 10 февраля 2020

Я пытаюсь запустить CI в gitlab

image: node:latest

stages:
  - deploy

production:
  stage: deploy
  before_script:
    - npm config set prefix /usr/local
    - npm install -g serverless
  script:
    - serverless deploy 

Я использую изображение docker, как они предлагают, но оно не может найти npm (или узел)

Как я могу заставить это работать?

1 Ответ

1 голос
/ 11 февраля 2020

Ну, это немного странно, поскольку ваш ci-код правильный.

Если вы просто используете gitlab.com и их общих участников, тогда этот .gitlab-ci.yml будет работать.

Одной из возможных причин может быть добавление бегунов в качестве исполнителей ssh ​​/ shell в репозитории проекта. Если это так, то указанный вами тег изображения будет просто проигнорирован.

Таким образом, ошибка типа command not found может возникнуть из-за того, что на сервере, на который вы добавили бегун, не установлена ​​nodejs, и эта ошибка будет происходит для команды npm config... в перед сценарии с кодом завершения 127, и конвейер завершится с ошибкой и остановится.

Если у вас несколько бегунов, отметьте их и отметьте также свои задания в ci.yml. И если вы пытаетесь запустить задание на своем собственном сервере, тогда вам нужно сначала установить docker.

BTW для docker узла образа: последний вам не нужен npm config set prefix /usr/local, как он уже есть /usr/local

...