Meteor 部署

2022-06-30 13:54 更新

部署

有些人喜歡不被打擾地工作,直到項目足夠完美才去發(fā)布,而有些人則迫不及待的要向大家展示自己的項目。

如果你是第一種人,現(xiàn)在寧愿在本地開發(fā),那么可以果斷跳過這一章。相反,如果你更愿意花時間去學(xué)習(xí)如何把 Meteor 應(yīng)用部署到線上,我們下面為你提供一些方法。

我們將學(xué)習(xí)幾種不同的方法去部署一個 Meteor 應(yīng)用。無論你是在開發(fā) Microscope 或任何其他的 Meteor 應(yīng)用,在你開發(fā)過程的任何階段,可以隨意地從它們當(dāng)中挑選一個。讓我們馬上開始吧!

引入附錄

這是一個附錄章節(jié)。 不同于其他書的是,本書的附錄會讓我們深入去了解更多關(guān)于 Meteor 的知識。

現(xiàn)在如果你更愿意去繼續(xù)構(gòu)建 Microscope ,你現(xiàn)在可以先忽略這一章,等有空再回來看也沒問題。

部署在 Meteor

首先最簡單的是部署到 Meteor 的子域名上(例如: http://myapp.meteor.com ),這是我們首先要去學(xué)習(xí)的。在項目早期,這對于展示你的應(yīng)用和快速設(shè)置一個測試服務(wù)器都很有用途。

而部署在 Meteor 是非常簡單的。打開終端,定位到你 Meteor 應(yīng)用的目錄,并輸入:

meteor deploy myapp.meteor.com

當(dāng)然,你要把“myapp”替換成你想要的名稱,最好是命名一個沒有被使用的。如果你的名稱已經(jīng)被使用,Meteor 會提示你去輸入密碼。如果發(fā)生這樣的情況,只需通過 ctrl+c 來取消當(dāng)前操作,然后用另一個不同的名稱再試一次。

如果順利地部署成功了,幾秒鐘后你就能夠在 http://myapp.meteor.com 上訪問到你的應(yīng)用了。

你可以參考官方文檔去了解更多關(guān)于如何直接訪問你域名下的數(shù)據(jù)庫,或者為你的應(yīng)用設(shè)置一個自定義域名等等的相關(guān)信息。

部署在 Modulus

Modulus 是一個部署 Node.js 應(yīng)用 很好的選擇。這是為數(shù)不多的 PaaS(platform-as-a-service 平臺即服務(wù))的提供商,并且已經(jīng)正式支持 Meteor ,已經(jīng)有不少人在它上面去搭建 Meteor 應(yīng)用了。

你可以通過閱讀他們的部署 Meteor 應(yīng)用指南去了解更多關(guān)于 Modulus 的信息。

Meteor Up

雖然每天都有新的云端解決方案出來,但是它們通常都有自己的一些問題和限制。目前,把 Meteor 應(yīng)用部署在自己的服務(wù)器才是一個最好的方式。然而麻煩的是,部署到自己的服務(wù)器并不是那么簡單,尤其如果你注重產(chǎn)品部署上去的質(zhì)量的話。

Meteor Up (簡稱 mup )是另一個通過命令行的操作去幫助你解決安裝和部署問題。所以讓我們看看如何通過 Meteor Up 來部署 Microscope。

在此之前,我們需要一個服務(wù)器來發(fā)布。我們建議使用 Digital Ocean(每月最低5美元),或者 AWS(它為小型實例提供免費(fèi),如果你只是想試玩玩 Meteor Up 就已經(jīng)足夠了)。

無論選擇哪種服務(wù),你應(yīng)該要解決這三樣?xùn)|西:你服務(wù)器的 IP 地址,登錄賬號(通常是 root 或者 ubuntu )和登錄密碼。將它們安全地保存起來,我們很快就會用到。

Meteor Up 的初始化

首先,我們需要通過 npm 去安裝 Meteor Up:

npm install -g mup

然后我們將創(chuàng)建一個單獨(dú)的目錄,為我們的 Meteor Up 提供一個特定的部署環(huán)境。我們使用單獨(dú)的目錄出于兩個原因:第一,這可以很好的避免里面包含任何你 Git 存儲庫的隱藏文件,尤其如果你是在公共代碼庫去操作。

第二,通過使用多個單獨(dú)的目錄,我們能夠并行地進(jìn)行多個 Meteor Up 管理和配置。這將會用在實際產(chǎn)品的部署以及分段實例的部署。

所以我們來創(chuàng)建這個新目錄,并使用它來初始化一個新的 Meteor Up 項目:

mkdir ~/microscope-deploy
cd ~/microscope-deploy
mup init

通過 Dropbox 分享

為了確保你和你的團(tuán)隊都使用相同的部署設(shè)置,一個很好的方法就是把你的 Meteor Up 配置文件夾放在你的 Dropbox 上,或者任何類似的服務(wù)上。

Meteor Up 的配置

當(dāng)初始化一個新項目的時候,Meteor Up 會為了創(chuàng)建兩個文件: mup.jsonsettings.json 。

mup.json 會保存所有我們部署的相關(guān)設(shè)置,而 settings.json 會保存所有應(yīng)用的相關(guān)設(shè)置(OAuth token、Analytics token,等等)。

下一步就是去配置你的 mup.json 文件。 mup.json 會默認(rèn)在執(zhí)行 mup init 的時候生成,而你要做的就是把空白的填上:

{
  //server authentication info
  "servers": [{
    "host": "hostname",
    "username": "root",
    "password": "password"
    //or pem file (ssh based authentication)
    //"pem": "~/.ssh/id_rsa"
  }],

  //install MongoDB in the server
  "setupMongo": true,

  //location of app (local directory)
  "app": "/path/to/the/app",

  //configure environmental
  "env": {
    "ROOT_URL": "http://supersite.com"
  }
}

讓我們了解一下這些設(shè)置。

服務(wù)器身份驗證

你會注意到 Meteor Up 提供了基于密碼和基于私鑰(PEM)的身份驗證,所以它幾乎可以用于任何的云提供商。

重要提示:如果你選擇使用基于密碼的身份驗證,確保你在這之前已經(jīng)安裝了 sshpass使用指南)。

MongoDB 配置

下一步是為你的應(yīng)用配置 MongoDB 數(shù)據(jù)庫。我們建議使用 Compose 或者其他提供云端 MongoDB 的提供商,因為它們提供專業(yè)支持和更好的管理工具。

如果你決定使用 Compose ,把 setupMongo 設(shè)置為 false ,并添加 MONGO_URL 環(huán)境變量到 mup.json 中的 env 模塊。如果你決定通過 Meteor Up 去訪問 MongoDB ,只需要設(shè)置 setupMongotrue ,然后 Meteor Up 會完成剩下的工作。

Meteor 應(yīng)用路徑

因為 Meteor Up 的配置作用在不同的目錄,我們需要通過 app 屬性去把 Meteor Up 指回到應(yīng)用。只需要設(shè)置你完整的本地路徑,當(dāng)你位于你的應(yīng)用目錄里面的時候,你可以使用 pwd 命令去獲取它。

環(huán)境變量

你可以在 env 模塊中指定應(yīng)用的所有環(huán)境變量(比如: ROOT_URL , MAIL_URL , MONGO_URL 等等)

設(shè)置和部署

在我們可以部署之前,我們還需要設(shè)置服務(wù)器去為 Meteor 應(yīng)用托管。Meteor Up 把這個復(fù)雜的過程封裝在一個簡單的命令上!

mup setup

可能需要幾分鐘,這取決于服務(wù)器的性能和網(wǎng)絡(luò)連接速度。設(shè)置成功后,終于可以去部署我們的應(yīng)用:

mup deploy

這將會打包我們的 Meteor 應(yīng)用并部署到我們剛剛設(shè)置好的服務(wù)器上。

顯示日志信息

日志也是非常重要的, Meteor Up 提供非常簡單的方法去處理它,通過模仿 tail -f 命令,輸入:

mup logs -f

這一小節(jié)概述了 Meteor Up 的用法。了解更多關(guān)于它的信息,我們建議看看 Meteor Up 在 GitHub 上詳細(xì)介紹

這三種部署 Meteor 應(yīng)用的方式應(yīng)該足夠滿足大多數(shù)的案例了。當(dāng)然,我們知道一些人會喜歡更進(jìn)一步地控制和設(shè)置他們的 Meteor 服務(wù)器。然而這將會是另一個主題,或者另一本書!

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號