Установка кафка-авро с node-gyp в Jenkins - PullRequest
0 голосов
/ 14 июня 2019

Я пытаюсь установить kafka-avro ^1.2.0 в Дженкинс. Этот пакет является оберткой вокруг node-rdkafka и avsc. Я могу нормально установить пакет локально в macOS, но в Jenkins происходит сбой установки.

Метод установки использует образ Docker node:8.16-stretch и выглядит примерно так

yarn config set yarn-offline-mirror /yarn-mirror
yarn install --production=false --frozen-lockfile --cache-folder /yarn-cache

Ошибка:

Checking librdkafka
++ integrity
librdkafka++.so.1              OK
librdkafka++.a                 OK
make[2]: Leaving directory '/scratch/axioscode/platform-api-streams/duffn%2Fkafka-poc-avro/node_modules/node-rdkafka/deps/librdkafka/src-cpp'
make[2]: Entering directory '/scratch/axioscode/platform-api-streams/duffn%2Fkafka-poc-avro/node_modules/node-rdkafka/deps/librdkafka/src'
/bin/sh: 1: printf: %2F: invalid directive
Install librdkafka to /scratch/axioscode/platform-api-streams/duffn../mklove/Makefile.base:170: recipe for target 'lib-install' failed
make[2]: *** [lib-install] Error 1
make[2]: Leaving directory '/scratch/axioscode/platform-api-streams/duffn%2Fkafka-poc-avro/node_modules/node-rdkafka/deps/librdkafka/src'
Makefile:35: recipe for target 'install' failed
make[1]: *** [install] Error 2
make[1]: Leaving directory '/scratch/axioscode/platform-api-streams/duffn%2Fkafka-poc-avro/node_modules/node-rdkafka/deps/librdkafka'
deps/librdkafka.target.mk:29: recipe for target '49390c053a7057698a38b8aa07e2bd746651d40e.intermediate' failed
make: *** [49390c053a7057698a38b8aa07e2bd746651d40e.intermediate] Error 2
rm 49390c053a7057698a38b8aa07e2bd746651d40e.intermediate
make: Leaving directory '/scratch/axioscode/platform-api-streams/duffn%2Fkafka-poc-avro/node_modules/node-rdkafka/build'
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:262:23)
gyp ERR! stack     at emitTwo (events.js:126:13)
gyp ERR! stack     at ChildProcess.emit (events.js:214:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:198:12)
gyp ERR! System Linux 4.14.72-68.55.amzn1.x86_64
gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /scratch/axioscode/platform-api-streams/duffn%2Fkafka-poc-avro/node_modules/node-rdkafka
gyp ERR! node -v v8.16.0
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok

То, что /bin/sh: 1: printf: %2F: invalid directive звучит так, будто пакет не может быть установлен с оболочкой sh по умолчанию, которую использует Jenkins. Итак, я попробовал:

sh '''#!/bin/bash -l
yarn config set yarn-offline-mirror /yarn-mirror
yarn install --production=false --frozen-lockfile --cache-folder /yarn-cache
'''

на моем шаге Дженкинса для принудительного использования bash, но все равно появляется та же ошибка.

Я неправильно истолковал ошибку? Как я могу успешно установить этот пакет, который собран с node-gyp в Jenkins?

...