0

每次尝试部署到 AWS/EC2 实例或 Digital Ocean 液滴时,我都会遇到失败。对于 EC2 实例,我使用的是 pem 文件,而对于 droplet,我使用的是密码访问。为了完成 mup 设置,有很多障碍需要跳过,但这最终在两种情况下都成功了。在调用部署过程中失败的是 mup 部署:步骤。

这是我的液滴 mup.json:

{
  // Server authentication info
  "servers": [
    {
      "host": "xx.xx.xx.xx",
      "username": "root",
      "password": "notmypassword"
      // or pem file (ssh based authentication)
      //"pem": "~/.ssh/id_rsa"
      //"pem": "/users/alex/dropbox/awspems/projectmanager.pem"
    }
  ],

  // Install MongoDB in the server, does not destroy local MongoDB on future setup
  "setupMongo": true,

  // WARNING: Node.js is required! Only skip if you already have Node.js installed on server.
  "setupNode": true,

  // WARNING: If nodeVersion omitted will setup 0.10.33 by default. Do not use v, only version number.
  "nodeVersion": "0.10.35",

  // Install PhantomJS in the server
  "setupPhantom": true,

  // Application name (No spaces)
  "appName": "projectmanager",

  // Location of app (local directory)
  "app": "/users/alex/dropbox/projectmanager",

  // Configure environment
  "env": {
    "ROOT_URL": "http://xx.xx.xx.xx"
  },

  // Meteor Up checks if the app comes online just after the deployment
  // before mup checks that, it will wait for no. of seconds configured below
  "deployCheckWaitTime": 30
}

无论是在 EC2 实例中还是在 Droplet 实例中,都会出现以下消息:

Claire-MacAir-7:projectmanager alex$ mup deploy

Meteor Up: Production Quality Meteor Deployments
------------------------------------------------

“ Checkout Kadira!
  It's the best way to monitor performance of your app.
  Visit: https://kadira.io/mup ”

Building Started: /users/notmyusername/dropbox/projectmanager

Started TaskList: Deploy app 'projectmanager' (linux)
[xx.xx.xx.xx] - Uploading bundle
[xx.xx.xx.xx] ✔ Uploading bundle: SUCCESS
[xx.xx.xx.xx] - Setting up Environment Variables
[xx.xx.xx.xx] ✔ Setting up Environment Variables: SUCCESS
[xx.xx.xx.xx] - Invoking deployment process
[xx.xx.xx.xx] ✘ Invoking deployment process: FAILED

    -----------------------------------STDERR-----------------------------------
    ir=/root/.node-gyp/0.10.35',
    gyp info spawn args   '-Dmodule_root_dir=/opt/projectmanager/tmp/bundle/programs/server/npm/npm-bcrypt/node_modules/bcrypt',
    gyp info spawn args   '--depth=.',
    gyp info spawn args   '--no-parallel',
    gyp info spawn args   '--generator-output',
    gyp info spawn args   'build',
    gyp info spawn args   '-Goutput_dir=.' ]
    gyp info spawn make
    gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
    gyp info ok
    npm WARN package.json meteor-dev-bundle@0.0.0 No description
    npm WARN package.json meteor-dev-bundle@0.0.0 No repository field.
    npm WARN package.json meteor-dev-bundle@0.0.0 No README data
    stop: Unknown instance:
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                    Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0curl: (7) Failed to connect to localhost port 80: Connection refused
    App did not pick up! Please check app logs.
    -----------------------------------STDOUT-----------------------------------
    LE(target) Release/obj.target/bcrypt_lib.node: Finished
      COPY Release/bcrypt_lib.node
    make: Leaving directory `/opt/projectmanager/tmp/bundle/programs/server/npm/npm-bcrypt/node_modules/bcrypt/build'

    > fibers@1.0.1 install /opt/projectmanager/tmp/bundle/programs/server/node_modules/fibers
    > node ./build.js

    `linux-x64-v8-3.14` exists; testing
    Binary is fine; exiting
    underscore@1.5.2 node_modules/underscore

    semver@4.1.0 node_modules/semver

    chalk@0.5.1 node_modules/chalk
    ├── escape-string-regexp@1.0.2
    ├── ansi-styles@1.1.0
    ├── supports-color@0.2.0
    ├── strip-ansi@0.3.0 (ansi-regex@0.2.1)
    └── has-ansi@0.1.0 (ansi-regex@0.2.1)

    eachline@2.3.3 node_modules/eachline
    └── type-of@2.0.1

    source-map-support@0.2.8 node_modules/source-map-support
    └── source-map@0.1.32 (amdefine@0.1.0)

    fibers@1.0.1 node_modules/fibers
    Waiting for MongoDB to initialize. (5 minutes)
    connected
    projectmanager start/running, process 11786
    Waiting for 30 seconds while app is booting up
    Checking is app booted or not?
    ----------------------------------------------------------------------------
Completed TaskList: Deploy app 'projectmanager' (linux)

该项目在我的本地主机上完美运行,没有错误。

有任何想法吗?

在此先感谢亚历克斯·亚当斯


解决方案是:

mup 日志显示它不喜欢为文件夹指定的路径来保存上传的文件。我将应用程序更改为使用 GridFS,从而将文件存储在数据库中。该应用程序现在可以正确部署。

4

0 回答 0