Ошибка в развертывании на героку
У меня есть приложение, работающее в автономном режиме с npm start
, но не работаю на героку.
Журнал сборки
-----> Node.js app detected
-----> Creating runtime environment
NPM_CONFIG_LOGLEVEL=error
NPM_CONFIG_PRODUCTION=true
NODE_ENV=production
NODE_MODULES_CACHE=true
-----> Installing binaries
engines.node (package.json): 4.2.3
engines.npm (package.json): 2.14.7
Downloading and installing node 4.2.3...
npm 2.14.7 already installed with node
-----> Restoring cache
Skipping cache restore (new runtime signature)
-----> Building dependencies
Pruning any extraneous modules
Installing node modules (package.json)
> hiredis@0.4.1 install /tmp/build_53fdc0bcb9495ddaeba9fc11b5883afa/Mansoor-amin-MySalesmanApp-b437df7/node_modules/mors/node_modules/mosca/node_modules/hiredis
> node-gyp rebuild
make: Entering directory `/tmp/build_53fdc0bcb9495ddaeba9fc11b5883afa/Mansoor-amin-MySalesmanApp-b437df7/node_modules/mors/node_modules/mosca/node_modules/hiredis/build'
CC(target) Release/obj.target/hiredis-c/deps/hiredis/sds.o
CC(target) Release/obj.target/hiredis-c/deps/hiredis/read.o
AR(target) Release/obj.target/deps/hiredis-c.a
COPY Release/hiredis-c.a
CXX(target) Release/obj.target/hiredis/src/hiredis.o
CXX(target) Release/obj.target/hiredis/src/reader.o
SOLINK_MODULE(target) Release/obj.target/hiredis.node
COPY Release/hiredis.node
make: Leaving directory `/tmp/build_53fdc0bcb9495ddaeba9fc11b5883afa/Mansoor-amin-MySalesmanApp-b437df7/node_modules/mors/node_modules/mosca/node_modules/hiredis/build'
> bufferutil@1.2.1 install /tmp/build_53fdc0bcb9495ddaeba9fc11b5883afa/Mansoor-amin-MySalesmanApp-b437df7/node_modules/mors/node_modules/mosca/node_modules/websocket-stream/node_modules/ws/node_modules/bufferutil
> node-gyp rebuild
make: Entering directory `/tmp/build_53fdc0bcb9495ddaeba9fc11b5883afa/Mansoor-amin-MySalesmanApp-b437df7/node_modules/mors/node_modules/mosca/node_modules/websocket-stream/node_modules/ws/node_modules/bufferutil/build'
CXX(target) Release/obj.target/bufferutil/src/bufferutil.o
SOLINK_MODULE(target) Release/obj.target/bufferutil.node
COPY Release/bufferutil.node
make: Leaving directory `/tmp/build_53fdc0bcb9495ddaeba9fc11b5883afa/Mansoor-amin-MySalesmanApp-b437df7/node_modules/mors/node_modules/mosca/node_modules/websocket-stream/node_modules/ws/node_modules/bufferutil/build'
> utf-8-validate@1.2.1 install /tmp/build_53fdc0bcb9495ddaeba9fc11b5883afa/Mansoor-amin-MySalesmanApp-b437df7/node_modules/mors/node_modules/mosca/node_modules/websocket-stream/node_modules/ws/node_modules/utf-8-validate
> node-gyp rebuild
make: Entering directory `/tmp/build_53fdc0bcb9495ddaeba9fc11b5883afa/Mansoor-amin-MySalesmanApp-b437df7/node_modules/mors/node_modules/mosca/node_modules/websocket-stream/node_modules/ws/node_modules/utf-8-validate/build'
CXX(target) Release/obj.target/validation/src/validation.o
SOLINK_MODULE(target) Release/obj.target/validation.node
COPY Release/validation.node
make: Leaving directory `/tmp/build_53fdc0bcb9495ddaeba9fc11b5883afa/Mansoor-amin-MySalesmanApp-b437df7/node_modules/mors/node_modules/mosca/node_modules/websocket-stream/node_modules/ws/node_modules/utf-8-validate/build'
> zmq@2.12.0 install /tmp/build_53fdc0bcb9495ddaeba9fc11b5883afa/Mansoor-amin-MySalesmanApp-b437df7/node_modules/mors/node_modules/mosca/node_modules/zmq
> node-gyp rebuild
make: Entering directory `/tmp/build_53fdc0bcb9495ddaeba9fc11b5883afa/Mansoor-amin-MySalesmanApp-b437df7/node_modules/mors/node_modules/mosca/node_modules/zmq/build'
CXX(target) Release/obj.target/zmq/binding.o
../binding.cc:28:17: fatal error: zmq.h: No such file or directory
#include <zmq.h>
^
compilation terminated.
make: *** [Release/obj.target/zmq/binding.o] Error 1
make: Leaving directory `/tmp/build_53fdc0bcb9495ddaeba9fc11b5883afa/Mansoor-amin-MySalesmanApp-b437df7/node_modules/mors/node_modules/mosca/node_modules/zmq/build'
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack at ChildProcess.onExit (/tmp/build_53fdc0bcb9495ddaeba9fc11b5883afa/Mansoor-amin-MySalesmanApp-b437df7/.heroku/node/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:270:23)
gyp ERR! stack at emitTwo (events.js:87:13)
gyp ERR! stack at ChildProcess.emit (events.js:172:7)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
gyp ERR! System Linux 3.13.0-77-generic
gyp ERR! command "/tmp/build_53fdc0bcb9495ddaeba9fc11b5883afa/Mansoor-amin-MySalesmanApp-b437df7/.heroku/node/bin/node" "/tmp/build_53fdc0bcb9495ddaeba9fc11b5883afa/Mansoor-amin-MySalesmanApp-b437df7/.heroku/node/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /tmp/build_53fdc0bcb9495ddaeba9fc11b5883afa/Mansoor-amin-MySalesmanApp-b437df7/node_modules/mors/node_modules/mosca/node_modules/zmq
gyp ERR! node -v v4.2.3
gyp ERR! node-gyp -v v3.0.3
gyp ERR! not ok
> dtrace-provider@0.6.0 install /tmp/build_53fdc0bcb9495ddaeba9fc11b5883afa/Mansoor-amin-MySalesmanApp-b437df7/node_modules/mors/node_modules/mosca/node_modules/bunyan/node_modules/dtrace-provider
> node scripts/install.js
> zmq@2.11.1 install /tmp/build_53fdc0bcb9495ddaeba9fc11b5883afa/Mansoor-amin-MySalesmanApp-b437df7/node_modules/mors/node_modules/mosca/node_modules/ascoltatori/node_modules/zmq
> node-gyp rebuild
make: Entering directory `/tmp/build_53fdc0bcb9495ddaeba9fc11b5883afa/Mansoor-amin-MySalesmanApp-b437df7/node_modules/mors/node_modules/mosca/node_modules/ascoltatori/node_modules/zmq/build'
CXX(target) Release/obj.target/zmq/binding.o
../binding.cc:28:17: fatal error: zmq.h: No such file or directory
#include <zmq.h>
^
compilation terminated.
make: *** [Release/obj.target/zmq/binding.o] Error 1
make: Leaving directory `/tmp/build_53fdc0bcb9495ddaeba9fc11b5883afa/Mansoor-amin-MySalesmanApp-b437df7/node_modules/mors/node_modules/mosca/node_modules/ascoltatori/node_modules/zmq/build'
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack at ChildProcess.onExit (/tmp/build_53fdc0bcb9495ddaeba9fc11b5883afa/Mansoor-amin-MySalesmanApp-b437df7/.heroku/node/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:270:23)
gyp ERR! stack at emitTwo (events.js:87:13)
gyp ERR! stack at ChildProcess.emit (events.js:172:7)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
gyp ERR! System Linux 3.13.0-77-generic
gyp ERR! command "/tmp/build_53fdc0bcb9495ddaeba9fc11b5883afa/Mansoor-amin-MySalesmanApp-b437df7/.heroku/node/bin/node" "/tmp/build_53fdc0bcb9495ddaeba9fc11b5883afa/Mansoor-amin-MySalesmanApp-b437df7/.heroku/node/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /tmp/build_53fdc0bcb9495ddaeba9fc11b5883afa/Mansoor-amin-MySalesmanApp-b437df7/node_modules/mors/node_modules/mosca/node_modules/ascoltatori/node_modules/zmq
gyp ERR! node -v v4.2.3
gyp ERR! node-gyp -v v3.0.3
gyp ERR! not ok
> buffertools@2.1.3 install /tmp/build_53fdc0bcb9495ddaeba9fc11b5883afa/Mansoor-amin-MySalesmanApp-b437df7/node_modules/mors/node_modules/mosca/node_modules/ascoltatori/node_modules/qlobber-fsq/node_modules/buffertools
> node-gyp rebuild
make: Entering directory `/tmp/build_53fdc0bcb9495ddaeba9fc11b5883afa/Mansoor-amin-MySalesmanApp-b437df7/node_modules/mors/node_modules/mosca/node_modules/ascoltatori/node_modules/qlobber-fsq/node_modules/buffertools/build'
CXX(target) Release/obj.target/buffertools/buffertools.o
SOLINK_MODULE(target) Release/obj.target/buffertools.node
COPY Release/buffertools.node
make: Leaving directory `/tmp/build_53fdc0bcb9495ddaeba9fc11b5883afa/Mansoor-amin-MySalesmanApp-b437df7/node_modules/mors/node_modules/mosca/node_modules/ascoltatori/node_modules/qlobber-fsq/node_modules/buffertools/build'
> kerberos@0.0.18 install /tmp/build_53fdc0bcb9495ddaeba9fc11b5883afa/Mansoor-amin-MySalesmanApp-b437df7/node_modules/mors/node_modules/mosca/node_modules/mongodb/node_modules/kerberos
> (node-gyp rebuild) || (exit 0)
make: Entering directory `/tmp/build_53fdc0bcb9495ddaeba9fc11b5883afa/Mansoor-amin-MySalesmanApp-b437df7/node_modules/mors/node_modules/mosca/node_modules/mongodb/node_modules/kerberos/build'
CXX(target) Release/obj.target/kerberos/lib/kerberos.o
CXX(target) Release/obj.target/kerberos/lib/worker.o
CC(target) Release/obj.target/kerberos/lib/kerberosgss.o
../lib/kerberosgss.c:36:0: warning: ignoring #pragma clang diagnostic [-Wunknown-pragmas]
#pragma clang diagnostic push
^
../lib/kerberosgss.c:37:0: warning: ignoring #pragma clang diagnostic [-Wunknown-pragmas]
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
^
../lib/kerberosgss.c: In function ‘authenticate_gss_client_wrap’:
../lib/kerberosgss.c:362:19: warning: variable ‘server_conf_flags’ set but not used [-Wunused-but-set-variable]
char buf[4096], server_conf_flags;
^
../lib/kerberosgss.c: At top level:
../lib/kerberosgss.c:930:0: warning: ignoring #pragma clang diagnostic [-Wunknown-pragmas]
#pragma clang diagnostic pop
^
CC(target) Release/obj.target/kerberos/lib/base64.o
CXX(target) Release/obj.target/kerberos/lib/kerberos_context.o
SOLINK_MODULE(target) Release/obj.target/kerberos.node
COPY Release/kerberos.node
make: Leaving directory `/tmp/build_53fdc0bcb9495ddaeba9fc11b5883afa/Mansoor-amin-MySalesmanApp-b437df7/node_modules/mors/node_modules/mosca/node_modules/mongodb/node_modules/kerberos/build'
> fs-ext@0.4.6 install /tmp/build_53fdc0bcb9495ddaeba9fc11b5883afa/Mansoor-amin-MySalesmanApp-b437df7/node_modules/mors/node_modules/mosca/node_modules/ascoltatori/node_modules/qlobber-fsq/node_modules/fs-ext
> node-gyp configure build
make: Entering directory `/tmp/build_53fdc0bcb9495ddaeba9fc11b5883afa/Mansoor-amin-MySalesmanApp-b437df7/node_modules/mors/node_modules/mosca/node_modules/ascoltatori/node_modules/qlobber-fsq/node_modules/fs-ext/build'
CXX(target) Release/obj.target/fs-ext/fs-ext.o
In file included from ../fs-ext.cc:27:0:
../node_modules/nan/nan.h:324:27: error: redefinition of ‘template<class T> v8::Local<T> Nan::imp::NanEnsureHandleOrPersistent(const v8::Local<T>&)’
NAN_INLINE v8::Local<T> NanEnsureHandleOrPersistent(const v8::Local<T> &val) {
^
../node_modules/nan/nan.h:319:17: error: ‘template<class T> v8::Handle<T> Nan::imp::NanEnsureHandleOrPersistent(v8::Handle<T>&)’ previously declared here
v8::Handle<T> NanEnsureHandleOrPersistent(const v8::Handle<T> &val) {
^
../node_modules/nan/nan.h:344:27: error: redefinition of ‘template<class T> v8::Local<T> Nan::imp::NanEnsureLocal(v8::Handle<T>&)’
NAN_INLINE v8::Local<T> NanEnsureLocal(const v8::Handle<T> &val) {
^
../node_modules/nan/nan.h:334:27: error: ‘template<class T> v8::Local<T> Nan::imp::NanEnsureLocal(const v8::Local<T>&)’ previously declared here
NAN_INLINE v8::Local<T> NanEnsureLocal(const v8::Local<T> &val) {
^
../node_modules/nan/nan.h:757:13: error: ‘node::smalloc’ has not been declared
, node::smalloc::FreeCallback callback
^
../node_modules/nan/nan.h:757:35: error: expected ‘,’ or ‘...’ before ‘callback’
, node::smalloc::FreeCallback callback
^
../node_modules/nan/nan.h: In function ‘v8::Local<v8::Object> NanNewBufferHandle(char*, size_t, int)’:
../node_modules/nan/nan.h:761:50: error: ‘callback’ was not declared in this scope
v8::Isolate::GetCurrent(), data, length, callback, hint);
^
../node_modules/nan/nan.h:761:60: error: ‘hint’ was not declared in this scope
v8::Isolate::GetCurrent(), data, length, callback, hint);
^
../node_modules/nan/nan.h: In function ‘v8::Local<v8::Object> NanNewBufferHandle(const char*, uint32_t)’:
../node_modules/nan/nan.h:768:67: error: call of overloaded ‘New(v8::Isolate*, const char*&, uint32_t&)’ is ambiguous
return node::Buffer::New(v8::Isolate::GetCurrent(), data, size);
^
../node_modules/nan/nan.h:768:67: note: candidates are:
In file included from ../node_modules/nan/nan.h:25:0,
from ../fs-ext.cc:27:
/app/.node-gyp/4.2.3/include/node/node_buffer.h:31:40: note: v8::MaybeLocal<v8::Object> node::Buffer::New(v8::Isolate*, v8::Local<v8::String>, node::encoding) <near match>
NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,
^
/app/.node-gyp/4.2.3/include/node/node_buffer.h:31:40: note: no known conversion for argument 3 from ‘uint32_t {aka unsigned int}’ to ‘node::encoding’
/app/.node-gyp/4.2.3/include/node/node_buffer.h:43:40: note: v8::MaybeLocal<v8::Object> node::Buffer::New(v8::Isolate*, char*, size_t) <near match>
NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,
^
/app/.node-gyp/4.2.3/include/node/node_buffer.h:43:40: note: no known conversion for argument 2 from ‘const char*’ to ‘char*’
In file included from ../fs-ext.cc:27:0:
../node_modules/nan/nan.h: In function ‘v8::Local<v8::Object> NanNewBufferHandle(uint32_t)’:
../node_modules/nan/nan.h:772:61: error: could not convert ‘node::Buffer::New(v8::Isolate::GetCurrent(), ((size_t)size))’ from ‘v8::MaybeLocal<v8::Object>’ to ‘v8::Local<v8::Object>’
return node::Buffer::New(v8::Isolate::GetCurrent(), size);
^
../node_modules/nan/nan.h: In function ‘v8::Local<v8::Object> NanBufferUse(char*, uint32_t)’:
../node_modules/nan/nan.h:779:12: error: ‘Use’ is not a member of ‘node::Buffer’
return node::Buffer::Use(v8::Isolate::GetCurrent(), data, size);
^
make: *** [Release/obj.target/fs-ext/fs-ext.o] Error 1
make: Leaving directory `/tmp/build_53fdc0bcb9495ddaeba9fc11b5883afa/Mansoor-amin-MySalesmanApp-b437df7/node_modules/mors/node_modules/mosca/node_modules/ascoltatori/node_modules/qlobber-fsq/node_modules/fs-ext/build'
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack at ChildProcess.onExit (/tmp/build_53fdc0bcb9495ddaeba9fc11b5883afa/Mansoor-amin-MySalesmanApp-b437df7/.heroku/node/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:270:23)
gyp ERR! stack at emitTwo (events.js:87:13)
gyp ERR! stack at ChildProcess.emit (events.js:172:7)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
gyp ERR! System Linux 3.13.0-77-generic
gyp ERR! command "/tmp/build_53fdc0bcb9495ddaeba9fc11b5883afa/Mansoor-amin-MySalesmanApp-b437df7/.heroku/node/bin/node" "/tmp/build_53fdc0bcb9495ddaeba9fc11b5883afa/Mansoor-amin-MySalesmanApp-b437df7/.heroku/node/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "configure" "build"
gyp ERR! cwd /tmp/build_53fdc0bcb9495ddaeba9fc11b5883afa/Mansoor-amin-MySalesmanApp-b437df7/node_modules/mors/node_modules/mosca/node_modules/ascoltatori/node_modules/qlobber-fsq/node_modules/fs-ext
gyp ERR! node -v v4.2.3
gyp ERR! node-gyp -v v3.0.3
gyp ERR! not ok
> leveldown@1.4.4 install /tmp/build_53fdc0bcb9495ddaeba9fc11b5883afa/Mansoor-amin-MySalesmanApp-b437df7/node_modules/mors/node_modules/mosca/node_modules/leveldown
> prebuild --install
q@1.4.1 node_modules/q
cors@2.7.1 node_modules/cors
└── vary@1.1.0
angularfire@1.1.4 node_modules/angularfire
└── angular@1.5.0
express@4.13.4 node_modules/express
├── escape-html@1.0.3
├── array-flatten@1.1.1
├── cookie-signature@1.0.6
├── utils-merge@1.0.0
├── vary@1.0.1
├── methods@1.1.2
├── content-type@1.0.1
├── merge-descriptors@1.0.1
├── content-disposition@0.5.1
├── fresh@0.3.0
├── range-parser@1.0.3
├── serve-static@1.10.2
├── path-to-regexp@0.1.7
├── parseurl@1.3.1
├── etag@1.7.0
├── cookie@0.1.5
├── depd@1.1.0
├── qs@4.0.0
├── on-finished@2.3.0 (ee-first@1.1.1)
├── finalhandler@0.4.1 (unpipe@1.0.0)
├── debug@2.2.0 (ms@0.7.1)
├── proxy-addr@1.0.10 (forwarded@0.1.0, ipaddr.js@1.0.5)
├── send@0.13.1 (destroy@1.0.4, statuses@1.2.1, ms@0.7.1, mime@1.3.4, http-errors@1.3.1)
├── accepts@1.2.13 (negotiator@0.5.3, mime-types@2.1.10)
└── type-is@1.6.11 (media-typer@0.3.0, mime-types@2.1.10)
body-parser@1.15.0 node_modules/body-parser
├── content-type@1.0.1
├── bytes@2.2.0
├── depd@1.1.0
├── qs@6.1.0
├── on-finished@2.3.0 (ee-first@1.1.1)
├── raw-body@2.1.5 (unpipe@1.0.0)
├── http-errors@1.4.0 (statuses@1.2.1, inherits@2.0.1)
├── debug@2.2.0 (ms@0.7.1)
├── iconv-lite@0.4.13
└── type-is@1.6.11 (media-typer@0.3.0, mime-types@2.1.10)
firebase@2.4.1 node_modules/firebase
└── faye-websocket@0.9.3 (websocket-driver@0.5.2)
mongoose@4.4.5 node_modules/mongoose
├── ms@0.7.1
├── sliced@1.0.1
├── regexp-clone@0.0.1
├── hooks-fixed@1.1.0
├── async@1.5.2
├── muri@1.1.0
├── mpromise@0.5.5
├── kareem@1.0.1
├── mpath@0.2.1
├── bson@0.4.21
├── mquery@1.7.0 (debug@2.2.0, sliced@0.0.5, bluebird@2.9.26)
└── mongodb@2.1.6 (es6-promise@3.0.2, readable-stream@1.0.31, mongodb-core@1.3.1)
mors@0.1.13 node_modules/mors
├── routes@2.1.0
├── debug@2.2.0 (ms@0.7.1)
├── lodash@3.10.1
└── mosca@0.32.1 (commander@2.3.0, moving-average@0.0.5, json-buffer@2.0.11, retimer@1.0.1, extend@2.0.1, async@0.9.2, lru-cache@2.5.2, redis@0.12.1, deepcopy@0.3.3, jsonschema@1.1.0, shortid@2.2.4, uuid@2.0.1, qlobber@0.5.3, minimatch@1.0.0, nan@2.0.9, pbkdf2-password@1.1.0, memdown@0.10.2, st@0.5.5, moment@2.8.4, mqtt-connection@2.1.1, levelup@1.3.1, msgpack5@1.6.0, amqp@0.2.4, hiredis@0.4.1, mqtt@1.7.2, level-sublevel@6.5.4, brfs@1.3.0, websocket-stream@2.0.2, bunyan@1.7.0, mongodb@2.0.55, ascoltatori@0.21.1, leveldown@1.4.4)
-----> Caching build
Clearing previous node cache
Saving 2 cacheDirectories (default):
- node_modules
- bower_components (nothing to cache)
-----> Build succeeded!
├── angularfire@1.1.4
├── body-parser@1.15.0
├── cors@2.7.1
├── express@4.13.4
├── firebase@2.4.1
├── mongoose@4.4.5
├── mors@0.1.13
└── q@1.4.1
-----> Discovering process types
Procfile declares types -> (none)
Default types for buildpack -> web
-----> Compressing...
Done: 23.6M
-----> Launching...
Released v3
https://mysalesmanapp.herokuapp.com/ deployed to Heroku
2 ответа
Использование NODE_MODULES_CACHE=false
настройка конфига. Другой вариант, если вы можете сделать это, это удалить приложение и воссоздать его с этим параметром.
Я нашел хороший способ установить zmq на heroku перед основным приложением, так zmq.h
доступно во время развертывания / компиляции:
- Добавьте https://github.com/heroku/heroku-buildpack-apt в качестве пакета сборки. Я добавил это выше
heroku/nodejs
, не уверен, если это имеет значение. - Зафиксировать новый файл
Aptfile
в корень репо с этим содержанием:libzmq3-dbg libzmq3-dev libzmq3
- От себя