在docker中运行Meteor的问题 - > fiber.node缺失

时间:2018-04-13 07:05:48

标签: angular docker meteor node-fibers

我试图在Docker容器中运行我的Meteor项目,但我发现以下错误:

=> Starting app on port 3000...
## There is an issue with `node-fibers` ##
`/opt/meteor/dist/bundle/programs/server/node_modules/fibers/bin/linux-x64-57/fibers.node` is missing.

Try running this to fix the issue: /opt/nodejs/bin/node /opt/meteor/dist/bundle/programs/server/node_modules/fibers/build
/opt/meteor/dist/bundle/programs/server/node_modules/fibers/fibers.js:20
    throw new Error('Missing binary. See message above.');
    ^

Error: Missing binary. See message above.
    at Object.<anonymous> (/opt/meteor/dist/bundle/programs/server/node_modules/fibers/fibers.js:20:8)
    at Module._compile (module.js:635:30)
    at Object.Module._extensions..js (module.js:646:10)
    at Module.load (module.js:554:32)
    at tryModuleLoad (module.js:497:12)
    at Function.Module._load (module.js:489:3)
    at Module.require (module.js:579:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/opt/meteor/dist/bundle/programs/server/boot.js:1:75)
    at Module._compile (module.js:635:30)

我不知道为什么会这样,我想这是一些包的问题,​​但我不知道如何解决这个问题。

我正在使用以下套餐:

},
  "devDependencies": {
    "@types/chai": "3.4.34",
    "@types/meteor": "^1.4.2",
    "@types/meteor-accounts-phone": "0.0.5",
    "@types/mocha": "2.2.34",
    "@types/underscore": "^1.8.1",
    "chai": "3.5.0",
    "chai-spies": "0.7.1",
    "meteor-node-stubs": "0.2.4",
    "node-sass": "^4.5.3",
    "raw-loader": "^0.5.1",
    "sass-loader": "^6.0.6"
  },
  "dependencies": {
    "@angular/animations": "^4.3.1",
    "@angular/common": "^2.4.1",
    "@angular/compiler": "^2.4.1",
    "@angular/compiler-cli": "^4.3.1",
    "@angular/core": "^2.4.10",
    "@angular/forms": "^2.4.1",
    "@angular/http": "^4.3.1",
    "@angular/platform-browser": "^2.4.1",
    "@angular/platform-browser-dynamic": "^2.4.1",
    "@angular/platform-server": "^4.3.1",
    "@angular/router": "3.4.1",
    "@angular/router-deprecated": "^2.0.0-rc.2",
    "@ionic/storage": "^2.0.1",
    "@types/lodash": "^4.14.72",
    "angular": "^1.6.5",
    "angular-date-value-accessor": "0.0.2",
    "angular-froala-wysiwyg": "^2.7.6",
    "angular2-meteor": "0.7.1",
    "angular2-meteor-polyfills": "^0.1.1",
    "angular2-meteor-tests-polyfills": "0.0.2",
    "babel-runtime": "^6.25.0",
    "bcrypt": "^1.0.3",
    "bootstrap": "^4.0.0-beta.2",
    "less": "^2.7.2",
    "lodash": "^4.17.4",
    "meteor-rxjs": "^0.4.7",
    "reflect-metadata": "^0.1.10",
    "rxjs": "^5.4.2",
    "zone.js": "^0.7.8"
  }

meteor-base@~1.1.0             # Packages every Meteor app needs to have
mongo@~1.2.3                   # The database Meteor supports right now
reactive-var@1.0.11           # Reactive variable for tracker
tracker@1.1.3                 # Meteor's client-side reactive programming library

standard-minifier-css@1.3.5   # CSS minifier run for production mode
standard-minifier-js@~2.1.2    # JS minifier run for production mode
es5-shim@4.6.15                # ECMAScript 5 compatibility for older browsers.

insecure@1.0.7                # Allow all DB writes from clients (for prototyping)
angular2-compilers
practicalmeteor:mocha
xolvio:cleaner
hwillson:stub-collections
dispatch:mocha-phantomjs
shell-server@~0.2.4
mys:fonts
mobile-status-bar@1.0.14
launch-screen@1.1.1
generalledger:sleepforms

npm-bcrypt@0.9.3
accounts-base@~1.3.4
accounts-password@~1.4.0
accounts-google
alanning:roles
erasaur:meteor-lodash
meteorhacks:aggregate
froala:editor
service-configuration

我正在使用METEOR@1.5.4.1

如何诊断此问题?

1 个答案:

答案 0 :(得分:1)

就我而言,我有不同的:

  • 系统 node --version 中的节点 js 版本
  • node js 版本的流星 meteor node --version
  • 未在 docker 中设置 node js 版本

如何修复:

  1. 像在meteor中一样设置节点版本
nvm use `meteor node --version`

我建议使用 nvm

  1. 使用 launchpad.conf 创建 NODE_VERSION 例如:
APT_GET_INSTALL="g++"

NODE_VERSION=12.18.4

Dockerfile

FROM jshimko/meteor-launchpad:latest as build