美文网首页
部署 meteor 到 Google Compute Engin

部署 meteor 到 Google Compute Engin

作者: 浮点量化 | 来源:发表于2018-04-23 17:02 被阅读57次

    我使用的是 Ubuntu 16.04 版本。

    1. 建议先建立一个新的 project,这样更容易和别人共享你的 Computer Engine,特别是需要和别人合作的时候。

    2. 创建后新建一个账号,这样可以可合作者分工协作。

    sudo adduser share
       ... ... 根据提示填写密码等
    sudo usermod -aG sudo share //把 share 账号添加到 sudo 组
    

    最后切换用户

    su - share
    
    1. 安装 node.js
      先安装 nvm,这样容易管理 node 的版本。
    curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.9/install.sh | bash
    

    安装后得退出 ssh console, 再次进入后 nvm 才会生效。
    安装 node 8.9.4 版本。最新的 8.11.1 在 meteor 里会有 segment fault 的问题。

    nvm install 8.9.4
    

    4.安装 pm2 管理 node 进程

    npm install pm2 -g
    pm2 startup systemd
    
    1. 安装 MongoDB,使用本地数据库
      详情见这里 英文安装步骤
      安装完成后,使用如下步骤确认下安装是否成功。
      先使用下面命令修改 mongod 的配置
    sudo nano /etc/mongod.conf
    

    找到 "#replication" 的注释处,改为如下内容

    replication:
      replSetName: meteor
    

    然后重启 mongo

    sudo service mongod restart
    

    重启后,运行 mongo 进入 mongo shell,在 mongo shell 里键入

    var config = {_id: "meteor", members: [{_id: 0, host: "127.0.0.1:27017"}]}
    rs.initiate(config)
    

    你应该会看到返回

    {"ok":1}
    

    最后,再次重启mongo

    sudo service mongod restart
    

    要确认 mongo 是否运行正常,可以进入 mongo shell,然后运行 rs.status() , 如果正常可以看到类似如下的返回

    {
     "set" : "meteor",
     "date" : ISODate("2016-08-22T10:54:53.367Z"),
     "myState" : 1,
     "term" : NumberLong(2),
     "heartbeatIntervalMillis" : NumberLong(2000),
     "members" : [
      {
       "_id" : 0,
       "name" : "127.0.0.1:27017",
       "health" : 1,
       "state" : 1,
       "stateStr" : "PRIMARY",
       "uptime" : 12576,
       "optime" : {
        "ts" : Timestamp(1471850718, 1),
        "t" : NumberLong(2)
       },
       "optimeDate" : ISODate("2016-08-22T07:25:18Z"),
       "electionTime" : Timestamp(1471850717, 1),
       "electionDate" : ISODate("2016-08-22T07:25:17Z"),
       "configVersion" : 1,
       "self" : true
      }
     ],
     "ok" : 1
    }
    
    1. 从 git repo clone 代码到 GCP 服务器

    2. build meteor app
      先安装 meteor

    curl https://install.meteor.com/ | sh
    

    然后在 meteor 代码文件夹下运行

    meteor npm i //安装所需的 npm 包
    meteor build --architecture=os.linux.x86_64 ../build  //打包代码.这个可能会要10来分钟
    tar xvf meteor-build-test.tar.gz //到 build 目录解压
    cd bundle/programs/server && npm install // 解压后安装 npm 包
    

    最后在 bundle 目录添加 pm2 的配置

    nano pm2.json
    
    {
      "apps": [{
        "name": "appName",
        "cwd": "/home/meteor/build/bundle",
        "script": "main.js",
        "env": {
          "NODE_ENV": "production",
          "WORKER_ID": "0",
          "PORT": "3000",
          "ROOT_URL": "http://your.server.ip.address",
          "MONGO_URL": "mongodb://localhost:27017/meteor",
          "MONGO_OPLOG_URL": "mongodb://localhost:27017/local",
          "HTTP_FORWARDED_COUNT": "1",
          "METEOR_SETTINGS": {}
        }
      }]
    }
    

    拷贝过去,记得把 ROOT_URL 改为你用的地址。

    最后运行 pm2 start pm2.json 命令, 你的 meteor 就运行在你的服务器上了。当然你也可以使用其 port,例如 80 端口。

    相关文章

      网友评论

          本文标题:部署 meteor 到 Google Compute Engin

          本文链接:https://www.haomeiwen.com/subject/rirllftx.html