簡體   English   中英

在npm install bcrypt時使用mup deploy部署流星應用程序時出錯

[英]Error when deploying a meteor app using mup deploy while npm install bcrypt

使用mup deploy部署流星應用程序時出現錯誤,實際上,當我手動嘗試使用mup生成的Dockerfile構建映像時,也會出現此錯誤。

我猜主要的錯誤信息(在日志輸出中的以下位置)是:

sh:1:節點預石膏:找不到

來自docker build -t my-app:build .日志輸出docker build -t my-app:build .

Removing intermediate container 3ac4d1150023
Step 7/7 : RUN cd  /built_app/programs/server &&     npm install --unsafe-perm
 ---> Running in 4a6faacefc21

> fibers@1.0.13 install /built_app/programs/server/node_modules/fibers
> node build.js || nodejs build.js

`linux-x64-v8-4.5` exists; testing
Binary is fine; exiting

> meteor-dev-bundle@0.0.0 install /built_app/programs/server
> node npm-rebuild.js


> bcrypt@0.8.6 install /built_app/programs/server/npm/node_modules/meteor/npm-bcrypt/node_modules/bcrypt
> node-gyp rebuild

make: Entering directory '/built_app/programs/server/npm/node_modules/meteor/npm-bcrypt/node_modules/bcrypt/build'
  CXX(target) Release/obj.target/bcrypt_lib/src/blowfish.o
  CXX(target) Release/obj.target/bcrypt_lib/src/bcrypt.o
  CXX(target) Release/obj.target/bcrypt_lib/src/bcrypt_node.o
  SOLINK_MODULE(target) Release/obj.target/bcrypt_lib.node
  COPY Release/bcrypt_lib.node
make: Leaving directory '/built_app/programs/server/npm/node_modules/meteor/npm-bcrypt/node_modules/bcrypt/build'
bcrypt@0.8.6 /built_app/programs/server/npm/node_modules/meteor/npm-bcrypt/node_modules/bcrypt
bindings@1.2.1 /built_app/programs/server/npm/node_modules/meteor/npm-bcrypt/node_modules/bcrypt/node_modules/bindings
nan@2.2.1 /built_app/programs/server/npm/node_modules/meteor/npm-bcrypt/node_modules/bcrypt/node_modules/nan

> bcrypt@1.0.3 install /built_app/programs/server/npm/node_modules/bcrypt
> node-pre-gyp install --fallback-to-build
sh: 1: node-pre-gyp: not found
npm ERR! file sh
npm ERR! code ELIFECYCLE
npm ERR! errno ENOENT
npm ERR! syscall spawn
npm ERR! bcrypt@1.0.3 install: `node-pre-gyp install --fallback-to-build`
npm ERR! spawn ENOENT
npm ERR!
npm ERR! Failed at the bcrypt@1.0.3 install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2018-02-07T17_21_17_486Z-debug.log
npm WARN meteor-dev-bundle@0.0.0 No description
npm WARN meteor-dev-bundle@0.0.0 No repository field.
npm WARN meteor-dev-bundle@0.0.0 No license field.
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! meteor-dev-bundle@0.0.0 install: `node npm-rebuild.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the meteor-dev-bundle@0.0.0 install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2018-02-07T17_21_17_559Z-debug.log
The command '/bin/sh -c cd  /built_app/programs/server &&     npm install --unsafe-perm' returned a non-zero code: 1

上面提到的日志文件說:

...
1227 info build /built_app/programs/server/npm/node_modules/bcrypt
1228 info lifecycle bcrypt@1.0.3~preinstall: bcrypt@1.0.3
1229 silly lifecycle bcrypt@1.0.3~preinstall: no script for preinstall, continuing
1230 info linkStuff bcrypt@1.0.3
1231 silly linkStuff bcrypt@1.0.3 has /built_app/programs/server/npm/node_modules as its parent node_modules
1232 verbose linkBins bcrypt@1.0.3
1233 verbose linkMans bcrypt@1.0.3
1234 verbose rebuildBundles bcrypt@1.0.3
1235 info lifecycle bcrypt@1.0.3~install: bcrypt@1.0.3
1236 verbose lifecycle bcrypt@1.0.3~install: unsafe-perm in lifecycle true
1237 verbose lifecycle bcrypt@1.0.3~install: PATH: /opt/nodejs/lib/node_modules/npm/bin/node-gyp-bin:/built_app/programs/server/npm/node_modules/bcrypt/node_modules/.bin:/built_app/programs/server/npm/node_modules/.bin:/opt/nodejs/bin:/opt/nodejs/lib/node_modules/npm/bin/node-gyp-bin:/built_app/programs/server/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
1238 verbose lifecycle bcrypt@1.0.3~install: CWD: /built_app/programs/server/npm/node_modules/bcrypt
1239 silly lifecycle bcrypt@1.0.3~install: Args: [ '-c', 'node-pre-gyp install --fallback-to-build' ]
1240 info lifecycle bcrypt@1.0.3~install: Failed to exec install script
1241 verbose stack Error: bcrypt@1.0.3 install: `node-pre-gyp install --fallback-to-build`
1241 verbose stack spawn ENOENT
1241 verbose stack     at ChildProcess.<anonymous> (/opt/nodejs/lib/node_modules/npm/lib/utils/spawn.js:33:16)
1241 verbose stack     at emitTwo (events.js:87:13)
1241 verbose stack     at ChildProcess.emit (events.js:172:7)
1241 verbose stack     at maybeClose (internal/child_process.js:862:16)
1241 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:222:5)
1242 verbose pkgid bcrypt@1.0.3
1243 verbose cwd /built_app/programs/server/npm
1244 verbose Linux 4.4.0-83-generic
1245 verbose argv "/opt/nodejs/bin/node" "/opt/nodejs/bin/npm" "rebuild"
1246 verbose node v4.8.7
1247 verbose npm  v4.6.1
1248 error file sh
1249 error code ELIFECYCLE
1250 error errno ENOENT
1251 error syscall spawn
1252 error bcrypt@1.0.3 install: `node-pre-gyp install --fallback-to-build`
1252 error spawn ENOENT
1253 error Failed at the bcrypt@1.0.3 install script.
1253 error This is probably not a problem with npm. There is likely additional logging output above.
1254 verbose exit [ 1, true ]

流星版本:1.4.4.2
節點版本:v4.8.7 npm版本:4.6.1
模板版本:1.3.7
泊塢窗映像:abernix / meteord:node-4.8.7-base

任何想法 ...?
找不到哪個文件?
(而且,我很確定前段時間完全相同的配置正在工作……)
我真的很感謝任何建議!

由於bcrypt程序包,您的應用程序開始需要node-pre-gyp

> bcrypt@1.0.3安裝/ built_app / programs / server / npm / node_modules / bcrypt

> node-pre-gyp install --fallback-to-build

但是,如果您密切注意,您會注意到上面還安裝了另一個版本的bcrypt並成功構建了該版本:

> bcrypt@0.8.6安裝/ built_app / programs / server / npm / node_modules / meteor / npm-bcrypt / node_modules / bcrypt

> node-gyp重建

給定安裝路徑,似乎0.8.6可能來自Meteor Atmosphere軟件包( npm-bcrypt ),而1.0.3來自package.json依賴項。

因此,您可能應該首先嘗試弄清為什么有2種不同的bcrypt安裝,以及是否可以擺脫1.0.3版本。

在最有可能的情況下,由於Meteor的accounts-password軟件包,您的應用程序依賴bcrypt ,后者會使用JavaScript版本的bcrypt如果缺少)自動運行,因此,您的應用程序不應僅通過刪除npm版本來中斷: meteor npm uninstall --save bcrypt (如@AbhishekMaurya所述)。 但是,正如@AbhishekMaurya的回答所指出的那樣,應用程序啟動日志將顯示一條警告消息,建議npm install bcrypt (您剛剛撤消了該操作)。 如果您的應用程序使用bcrypt的JavaScript實現時性能略有下降,則可以接受該警告。

至於現在的根本原因, Meteor中存在一個錯誤,該錯誤阻止了node-pre-gypnpm可見。 這應該已經在Meteor版本1.4.3修復。

如果沒有,你可以嘗試確保您使用的“舊”版本bcrypt ,提到這里meteor npm install --save bcrypt@0.8.7

卸載bcrypt,您將看到警告,但對應用程序沒有重大影響。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM