Meteor-up terminates after running deploy

2019-03-05 01:55发布

问题:

I don't know why I'm getting this error. Meteor-up is a brilliant. Whenever I run the deploy command it gets to a time and terminates. Could it be that a timeout has been set for the server to finish uploading the files. Please help.

C:\Programs\contract\schoolapps\.deploy>mup.cmd deploy --cached-build

   ┌─────────────────────────────────────┐
   │                                     │
   │   update available 1.3.2 => 1.3.3   │
   │     To update, run npm i -g mup     │
   │                                     │
   └─────────────────────────────────────┘

Not building app. Using build from previous deploy at
C:\Users\Kehinde\AppData\Local\Temp\mup-meteor-58e876b4-e682-4ecf-9d41-168fa46a5b19

Started TaskList: Pushing Meteor App
[xxx.xxx.xx.xx] - Pushing Meteor App Bundle to The Server
[===============                        ] 41% 630.4sevents.js:160
      throw er; // Unhandled 'error' event
      ^

Error: write ECONNRESET
    at exports._errnoException (util.js:1020:11)
    at WriteWrap.afterWrite (net.js:800:14)

C:\Programs\contract\schoolapps\.deploy>

After the upload was successful I got this error:

[xxx.xxx.xx.xx] x Prepare Bundle: FAILED

        -----------------------------------STDERR-----------------------------------
        Error response from daemon: No such container: myappsupload
        The command '/bin/sh -c cd  /built_app/programs/server &&     npm install --unsafe-perm' returned a non-zero code: 1
        Error response from daemon: No such container: myappsupload
        Error: failed to start containers: myappsupload
        -----------------------------------STDOUT-----------------------------------
        mnpm ERR! meteor-dev-bundle@0.0.0 install: `node npm-rebuild.js`
        npm ERR! Exit status 254
        npm ERR!
        npm ERR! Failed at the meteor-dev-bundle@0.0.0 install script 'node npm-rebuild.js'.
        npm ERR! Make sure you have the latest version of node.js and npm installed.
        npm ERR! If you do, this is most likely a problem with the meteor-dev-bundle package,
        npm ERR! not with npm itself.
        npm ERR! Tell the author that this fails on your system:
        npm ERR!     node npm-rebuild.js
        npm ERR! You can get information on how to open an issue for this project with:
        npm ERR!     npm bugs meteor-dev-bundle
        npm ERR! Or if that isn't available, you can get their info via:
        npm ERR!     npm owner ls meteor-dev-bundle
        npm ERR! There is likely additional logging output above.

        npm ERR! Please include the following file with any support request:
        npm ERR!     /built_app/programs/server/npm-debug.log

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

C:\Programs\contract\myappsupload\.deploy>

This is the mup.js file:

module.exports = {
  servers: {
    one: {
      // TODO: set host address, username, and authentication method
      host: 'xxx.xxx.xx.xx',
      username: 'root',
      // pem: './path/to/pem'
       password: 'xxxxxxxxxxxxxxxx'
      // or neither for authenticate from ssh-agent
    }
  },

  app: {
    // TODO: change app name and path
    name: 'schoolapps',
    path: '../',

    servers: {
      one: {},
    },

    buildOptions: {
      serverOnly: true,
    },

    env: {
      // TODO: Change to your app's url
      // If you are using ssl, it needs to start with https://
      ROOT_URL: 'http://schoolapps.com',
      MONGO_URL: 'mongodb://localhost/meteor',
    },

    // ssl: { // (optional)
    //   // Enables let's encrypt (optional)
    //   autogenerate: {
    //     email: 'email.address@domain.com',
    //     // comma separated list of domains
    //     domains: 'website.com,www.website.com'
    //   }
    // },

    docker: {
      // change to 'kadirahq/meteord' if your app is using Meteor 1.3 or older
      image: 'abernix/meteord:base',

      args: [
        //'--link=myCustomMongoDB:myCustomMongoDB', // linking example
        '--memory-reservation 300M' // memory reservation example
      ],
    },

    // Show progress bar while uploading bundle to server
    // You might need to disable it on CI servers
    enableUploadProgressBar: true,
    deployCheckWaitTime: 150
  },

  mongo: {
    version: '3.4.1',
    servers: {
      one: {}
    }
  }
};

回答1:

There is no substitute for reading the documentation before you ask questions.

You should also update the mup package like it's suggesting.

There is a setting deployCheckWaitTime which might be applicable, but it looks like it's failing in the upload. I'm not sure if it includes the upload time, but it would be worth increasing it to check.

Ten minutes is a long time to be only 41% through the upload, so your upload connection is slow - can you tether through your phone for better speed?

If that doesn't work, have a look to see if the disk is full on the target server, or if some other timeout is getting in the way (like your computer going to sleep)



回答2:

I do not know if it is still relevant, but maybe my answer will help someone else dealing with the same problem.

The task "Prepare bundle" was introduced in the version 1.3.0 of Meteor Up (see release notes):

After the bundle is uploaded to each server, a new task is run called "Prepare bundle". It installs the Meteor npm dependencies, rebuilds native modules, and stores the result in a docker image. This has a few benefits:

  • The time in meteor.deployCheckWaitTime no longer needs to include the time to install npm dependencies
  • When installing dependencies fails, it does not continuously restart until meteor.deployCheckWaitTime expires, and running with --verbose shows the full logs from npm install
  • Dependencies are only installed once during each deploy. This means that mup start, mup restart, and mup reconfig are all much faster.

From the version 1.3.1 this task can be disabled by adding the option app.docker.prepareBundle in mup.js and setting it to false. I dealt with the same error a few weeks ago and with this workaround I was able to deploy my application to DigitalOcean.