2
votes

I'm trying to deploy Meteor app on Ubuntu14.04/AWS by using mupx.

Here's my environment.

Server

node : v5.10.0, npm : 3.8.9, Ubuntu : 14.04

Client

node : v5.5.0, npm : 3.8.8, Mac : Version 10.11.014

mupx setup -> everything looks ok. mupx deploy -> Verifying deployment: FAILED happened.

here's log

-----------------------------------STDERR-----------------------------------
pm WARN deprecated 
npm WARN deprecated (Depending on how Node.js was installed on your system, you
npm WARN deprecated may need to prefix the preceding commands with `sudo`, or if
npm WARN deprecated on Windows, run them from an Administrator prompt.)
npm WARN deprecated 
npm WARN deprecated If you're running the version of npm bundled with
npm WARN deprecated Node.js 0.10 LTS, be aware that the next version of 0.10 LTS
npm WARN deprecated will be bundled with a version of npm@2, which has some small
npm WARN deprecated backwards-incompatible changes made to `npm run-script` and
npm WARN deprecated semver behavior.
npm WARN package.json [email protected] No description
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No README data
npm WARN cannot run in wd [email protected] node npm-rebuild.js (wd=/bundle/bundle/programs/server)
=> Starting meteor app on port:80

=> Redeploying previous version of the app

-----------------------------------STDOUT-----------------------------------

To see more logs type 'mup logs --tail=50'

----------------------------------------------------------------------------

When I did "mupx logs --tail=50" I got...

------------------------------------------------
Configuration file : mup.json
Settings file      : settings.json

[52.39.5.187] => Starting meteor app on port:80
[52.39.5.187] npm WARN deprecated   npm -g install npm@latest-2
npm WARN deprecated 
npm WARN deprecated To upgrade to the latest stable version, run:
npm WARN deprecated 
npm WARN deprecated   npm -g install npm@latest
npm WARN deprecated 
npm WARN deprecated (Depending on how Node.js was installed on your system, you
npm WARN deprecated may need to prefix the preceding commands with `sudo`, or if
npm WARN deprecated on Windows, run them from an Administrator prompt.)
npm WARN deprecated 
npm WARN deprecated If you're running the version of npm bundled with
npm WARN deprecated Node.js 0.10 LTS, be aware that the next version of 0.10 LTS
npm WARN deprecated will be bundled with a version of npm@2, which has some small
npm WARN deprecated backwards-incompatible changes made to `npm run-script` and
npm WARN deprecated semver behavior.
npm WARN package.json [email protected] No description
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No README data
npm WARN cannot run in wd [email protected] node npm-rebuild.js (wd=/bundle/bundle/programs/server)

/bundle/bundle/programs/server/node_modules/fibers/future.js:300
                        throw(ex);
                              ^
[object Object]
npm WARN deprecated This version of npm lacks support for important features,
npm WARN deprecated such as scoped packages, offered by the primary npm
npm WARN deprecated registry. Consider upgrading to at least npm@2, if not the
npm WARN deprecated latest stable version. To upgrade to npm@2, run:
npm WARN deprecated 
npm WARN deprecated   npm -g install npm@latest-2
npm WARN deprecated 
npm WARN deprecated To upgrade to the latest stable version, run:
npm WARN deprecated 
npm WARN deprecated   npm -g install npm@latest
npm WARN deprecated 
npm WARN deprecated (Depending on how Node.js was installed on your system, you
npm WARN deprecated may need to prefix the preceding commands with `sudo`, or if
npm WARN deprecated on Windows, run them from an Administrator prompt.)
npm WARN deprecated 
npm WARN deprecated If you're running the version of npm bundled with
npm WARN deprecated Node.js 0.10 LTS, be aware that the next version of 0.10 LTS
[52.39.5.187] npm WARN deprecated will be bundled with a version of npm@2, which has some small
npm WARN deprecated backwards-incompatible changes made to `npm run-script` and
npm WARN deprecated semver behavior.
npm WARN package.json [email protected] No description
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No README data
npm WARN cannot run in wd [email protected] node npm-rebuild.js (wd=/bundle/bundle/programs/server)
[52.39.5.187] => Starting meteor app on port:80

My mup.json is

{
  // Server authentication info
  "servers": [
    {
      "host": "xxx.xxx.xxx.xxx",
      "username": "__username___",
      "pem": "__path_to_pem__",
      "env": {}
    }
  ],

  // Install MongoDB on the server. Does not destroy the local MongoDB on future setups
  "setupMongo": false,

  // Application name (no spaces).
  "appName": "__app_name__",

  // Location of app (local directory). This can reference '~' as the users home directory.
  // i.e., "app": "~/Meteor/my-app",
  // This is the same as the line below.
  "app": "__path_to_app_source__",

  // Configure environment
  // ROOT_URL must be set to your correct domain (https or http)
  "env": {
    "PORT": 1342,
    "ROOT_URL": "https://xxx.xxx.xxx",
    "MONGO_URL": "mongodb://__user__:[email protected]:27017/__dbname__"
  },

  // Meteor Up checks if the app comes online just after the deployment.
  // Before mup checks that, it will wait for the number of seconds configured below.
  "deployCheckWaitTime": 120,

  // show a progress bar while uploading. 
  // Make it false when you deploy using a CI box.
  "enableUploadProgressBar": true
}

I prepared MongoDB manually.

I spent entire day here so if someone give me a hint, I will appreciate that. Thanks,

2
When I deploy same app with setupMongo ( without MONGO_URL ), I can deploy app normally. But at that case, MongoDB is created inside docker which is far from ideal for me.Ko Ohhashi
Just a guess but if your mongo is installed locally on the server shouldn't the url be @localhost:27017 ?Ben

2 Answers

1
votes

I face a lot of problem switching from mup to mupx. This issue seem to be related to this: https://github.com/arunoda/meteor-up/issues/958

I woud try to increase deployCheckWaitTime to 600 and see if this fix the issue, because the app it was deployed and started as you can see from your log:

[52.39.5.187] => Starting meteor app on port:80

After the app is deployed, mupx make a check to see if everything work after n seconds specified by deployCheckWaitTime option, so it can fail if you have long server operation in the main thread at the startup.

1
votes

I found a solution. This happens because I am ignorant about AWS and Docker.

My security group prevented Docker process to access Mongo. All I had to do was permit Docker ip address to access Mongo.

Thanks all.