美文网首页
部署 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