Периодический сбой (127) при поиске команды в пряже - PullRequest
0 голосов
/ 03 июня 2018

Я пытаюсь создать что-то на gcloud, в частности, веб-сайт с Yarn и Node.

Это скрипт, который я пытаюсь запустить:

"build:langs": "printenv && ls -lah node_modules/.bin && BABEL_ENV=test babel-node scripts/translate.js",

Через

$ yarn run build:langs

Какие выходные данные https://gist.github.com/haf/ebc623bfce5520432c136e44496b58fb - интересные биты (отформатированные для удобства чтения):

Step #2 - "js-build-langs": 
PATH=/workspace/src/site.com/node_modules/.bin
  :/usr/local/share/.config/yarn/link/node_modules/.bin
  :/workspace/src/
...
total 40K
Step #2 - "js-build-langs": drwxr-xr-x 2 root root 4.0K Jun 3 19:18 .
Step #2 - "js-build-langs": drwxr-xr-x 1194 root root 36K Jun 3 19:19 ..
Step #2 - "js-build-langs": lrwxrwxrwx 1 root root 20 Jun 3 19:18 JSONStream -> ../JSONStream/bin.js
Step #2 - "js-build-langs": lrwxrwxrwx 1 root root 19 Jun 3 19:18 _mocha -> ../mocha/bin/_mocha
...
Step #2 - "js-build-langs": lrwxrwxrwx 1 root root 30 Jun 3 19:18 babel-node -> ../babel-cli/bin/babel-node.js
...
Step #2 - "js-build-langs": /bin/sh: 1: babel-node: not found
Step #2 - "js-build-langs": error Command failed with exit code 127.
Step #2 - "js-build-langs": info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

Встроенный контейнерный конструктор:

Showing output from Google Container Builder

Это еще не все, потому что в этом фрик-шоу несколькими минутами (сейчас: часами) раньше ?:

enter image description here

Цель cloudbuild выглядит следующим образом:

steps:
# JS from https://console.cloud.google.com/gcr/images/cloud-builders/GLOBAL/yarn?gcrImageListsize=50:
- name: gcr.io/cloud-builders/yarn:node-8.11.0
  waitFor: ["-"]
  id: js-install
  dir: src/site.com
  args: ["install"]

- name: gcr.io/cloud-builders/yarn:node-8.11.0
  waitFor: ["js-install"]
  id: js-build-prod
  dir: src/site.com
  args: ["run", "build:prod"]

- name: gcr.io/cloud-builders/yarn:node-8.11.0
  waitFor: ["js-build-prod"]
  id: js-build-langs
  dir: src/site.com
  args: ["run", "build:langs"]

И packages.json snip:

  "devDependencies": {
    "@babel/core": "^7.0.0-beta.49",
    "@babel/node": "^7.0.0-beta.49",

В общем, я очень смущен.Почему это не работает, несмотря на PATH, содержащий бинарный файл js, который является исполняемым, тем не менее ??Почему он может найти webpack, а не babel-node?Почему я могу запустить его локально даже после полного git clean -fxd?И почему это сработало бы иногда, а не в другое время?

Моя интуиция говорит мне, что это какое-то состояние гонки в GCB

Ответы [ 2 ]

0 голосов
/ 07 июня 2018

РЕДАКТИРОВАТЬ 3: это время от времени возникает для нас, и вот наши текущие мысли.

Когда мы объединяем команды yarn с && в package.json, это вызывает проблемы с созданием, например node_modules/mocha/bin/mocha.js или другие исполняемые файлы js.

Мы сделали каждую команду в package.json не связанной и очищенной node_modules.По крайней мере, одна сборка прошла.

Гуглил '127 команда не найдена' и 'пряжа' не дает никаких намеков на это.

0 голосов
/ 04 июня 2018

Когда вы запускаете на хосте Google Container Builder , единственными данными, которые передаются на всех этапах сборки, являются данные в общем каталоге / workspace настроенных томах *)1006 *, но вы не используете ни один из предоставленного вами фрагмента).

Я не являюсь экспертом по npm или yarn - но ваши пакеты изменили свое расположение node_modules в конфигурации package.json?Обратите внимание, что yarn install принимает параметр --modules-folder, который может быть полезен.

...