Я пытаюсь установить 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?