1

I'm trying to run my Meteor Project in a docker container but I'm seeing the following error:

=> 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)

I dont know why this is happening, i guess it is a problem with some packages but i dont know how to fix this.

Im using following packages:

},
  "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"
  }

and

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

Im using METEOR@1.5.4.1

How can I diagnose this problem?

Michel Floyd
  • 18,793
  • 4
  • 24
  • 39
xQp
  • 302
  • 1
  • 5
  • 22
  • 2
    Do the `node` versions in the docker environment match with the `node` version of your Meteor 1.5.4.1 installation? If they mismatch you will likely have errors with packages that needs to be built against the current node environment architecture. – Jankapunkt Apr 13 '18 at 08:07
  • @Jankapunkt i think they were not but im going to check this. BTW i used this for docker: https://github.com/jshimko/meteor-launchpad do i need to set the node version of the isntall script or update on my system? – xQp Apr 13 '18 at 08:56
  • That is a good question and already worth an own question here on SO because I can't tell you the pros and cons of making the DOCKER ENV matching your local ENV and vice versa. – Jankapunkt Apr 13 '18 at 08:59
  • ok ill try to find a solution matching the node vesrion – xQp Apr 13 '18 at 09:45
  • remove bcrypt then try. – Abhishek Maurya Apr 13 '18 at 11:15
  • 1
    have not tryed the "removing bcrypt" version, but by setting the node version from the docker to the same as my system worked ;) but i will try the second way too – xQp Apr 13 '18 at 11:49

1 Answers1

1

In my case I had different:

  • node js version in system node --version
  • node js version of meteor meteor node --version
  • not set node js version in docker

How to fix:

  1. Set node version the same like in meteor
nvm use `meteor node --version`

I recommend using nvm.

  1. Create launchpad.conf with NODE_VERSION eg:
APT_GET_INSTALL="g++"

NODE_VERSION=12.18.4

and Dockerfile

FROM jshimko/meteor-launchpad:latest as build
Daniel
  • 7,684
  • 7
  • 52
  • 76