Vapor部署到Heroku

Swift5.3-Vapor4教程(二)

Heroku是一種流行的托管解決方案,可簡化Web和云應(yīng)用程序的部署.支持多種語言和多種數(shù)據(jù)庫. 設(shè)置方法有很多(瀏覽器中設(shè)置,終端設(shè)置等等我們只簡單介紹一種.文章最后再介紹一下vapor heroku命令)
注意:無論是哪一種部署請無比檢查好項目文件確保項目中包含LinuxMain.swift文件.如果沒有需要自己創(chuàng)建一個.

文件名

LinuxMain.swift

文件內(nèi)容

import XCTest
@testable import MonoGeneratorTests

XCTMain([
     testCase(GeneratorTests.allTests),
])

最終的樣式


image.png

設(shè)置Heroku

如果你還沒有Heroku賬戶,點擊這里注冊一個.

安裝CLI

有了Heroku帳戶后,請安裝Heroku CLI工具杂抽。在macOS上安裝的最簡單方法是通過Homebrew。在終端中,輸入:

brew install heroku/brew/heroku

登錄

安裝了Heroku CLI后渊抄,您需要登錄到您的帳戶。在終端中嗓奢,輸入:

heroku login

按照提示輸入您的電子郵件和密碼。登錄后燎窘,可以通過檢查whoami以確保其輸出正確的電子郵件來驗證成功摹闽。使用以下命令:

heroku auth:whoami

到此為止,我們已經(jīng)完成了Heroku在系統(tǒng)上的所有設(shè)置.接下來進(jìn)行項目的創(chuàng)建和使用.

創(chuàng)建第一個應(yīng)用程序(第一種方式)

在瀏覽器中訪問heroku.com來創(chuàng)建第一個應(yīng)用程序.打開heroku.com應(yīng)該已經(jīng)進(jìn)入dashboard.heroku.com. 如果沒有,清重新登錄并重試.在dashboard頁面右上角有一個按鈕New. 點擊并選擇Create new app


image.png

輸入應(yīng)用名稱

在下一個屏幕上,選擇部署區(qū)域和唯一的應(yīng)用程序名稱褐健。如果您不想選擇應(yīng)用程序的名稱钩骇,請將該字段保留為空白,Heroku會自動生成一個唯一的標(biāo)記來為您標(biāo)識應(yīng)用程序铝量。無論您是創(chuàng)建名稱倘屹,還是Heroku為您分配名稱,請記下名稱慢叨;您將在以后配置應(yīng)用程序時使用它纽匙。

點擊創(chuàng)建應(yīng)用


image.png

應(yīng)用創(chuàng)建完成之后,接下來就是把本地項目部署到Heroku

Git

Heroku使用Git部署您的應(yīng)用程序,因此您需要將項目放入Git存儲庫(如果尚未安裝)拍谐。首先烛缔,確定您的應(yīng)用程序是否已具有Git存儲庫。為此轩拨,請在終端中輸入以下命令:

git rev-parse --is-inside-work-tree

如果輸出到ture.如果不是 需要初始化一個git儲存庫.如果是請直接跳過初始化.

初始化Git

如果需要將Git添加到項目中,請在終端輸入以下命令:

git init

Branch

Heroku部署master分支践瓷。確保您在此分支上,并且已合并要部署的所有更改亡蓉。
要查看您當(dāng)前的分支晕翠,請在終端中輸入以下內(nèi)容:

git branch

輸出將類似于以下內(nèi)容。旁邊帶有星號的分支是當(dāng)前分支:

* master
  commander
  other-branches

如果您當(dāng)前不在master上砍濒,請輸入以下命令切換到master:

git checkout master

提交變更

確保所有更改都在您的master分支中并已提交淋肾。您可以通過輸入以下命令進(jìn)行驗證。如果看到任何輸出爸邢,則表示您尚未提交更改樊卓。

git status --porcelain

如果您有未提交的更改,請輸入以下命令以提交更改:

git add .
git commit -m "Jianshu Vapor Description"

這樣可以確保您的項目在本地存儲庫中杠河。

與Heroku連接

Heroku需要在Git存儲庫上配置另一個遠(yuǎn)程服務(wù)器碌尔。在終端中輸入以下命令,jianshuvapor是我創(chuàng)建的項目名(自己創(chuàng)建的項目自行更改)

heroku git:remote -a jianshuvapor

設(shè)置Buildpack

Heroku使用一種稱為Buildpack的東西來提供部署應(yīng)用程序時的配方券敌。蒸氣社區(qū)當(dāng)前提供了一個為蒸氣應(yīng)用設(shè)計的Buildpack唾戚。要為您的應(yīng)用程序設(shè)置Buildpack,請在終端中輸入以下內(nèi)容:

heroku buildpacks:set https://github.com/vapor-community/heroku-buildpack

Swift Version File

既然已經(jīng)設(shè)置了Buildpack陪白,Heroku需要幾個配置文件颈走。其中第一個是.swift-version。Buildpack使用它來確定要為項目安裝哪個Swift版本咱士。在終端中輸入以下命令:

echo "5.3" > .swift-version

程序文件Procfile

一旦在Heroku上構(gòu)建了應(yīng)用程序立由,Heroku需要知道要運行哪種類型的流程以及如何運行它。為了確定這一點序厉,它利用了一個名為Procfile的特殊文件锐膜。輸入以下命令來創(chuàng)建您的Procfile:

echo "web: Run serve --env production" \
  "--hostname 0.0.0.0 --port \$PORT" > Procfile

部署到Heroku

現(xiàn)在您可以將應(yīng)用程序部署到Heroku。將主分支推送到Heroku遠(yuǎn)程服務(wù)器弛房,然后等待所有內(nèi)容構(gòu)建道盏。這可能需要一段時間,尤其是在大型應(yīng)用程序上文捶。

要開始荷逞,請在終端中輸入以下內(nèi)容:

git push heroku master

一切部署完成后,Heroku會通知您應(yīng)用程序的狀態(tài)粹排。Heroku通常在完成構(gòu)建后會自動啟動您的應(yīng)用程序种远。萬一沒有發(fā)生這種情況,請在終端中輸入以下內(nèi)容以啟動您的應(yīng)用程序:

heroku ps:scale web=1

通過訪問應(yīng)用程序URL打開應(yīng)用程序顽耳,如瀏覽器中Heroku儀表板的“設(shè)置”標(biāo)簽中所示坠敷。您還可以通過在終端中輸入以下內(nèi)容,在瀏覽器中打開網(wǎng)站:

heroku open

到此屬于詳細(xì)的介紹已經(jīng)結(jié)束

接下來介紹一下vapor heroku命令(第二種方式)

注意兩種方式的前面的步驟相同:驗證LinuxMain.swift文件射富、安裝CLI膝迎、注冊登錄Heroku.
上述過程完成之后
使用終端進(jìn)入工程文件目錄并直接在終端使用vapor heroku命令
配置Heroku中程序的環(huán)境:

vapor heroku init

第一步選擇國家

image.png

輸入y選擇美國就好

第二步選擇部署環(huán)境

image.png

其中docker也是非常方便的.在這里只介紹一個buildpack.
輸入2懸著buildpack作為部署環(huán)境

第三步選擇Swift的版本號

image.png

直接輸入5.3

第四步是否使用默認(rèn)的Buildpack

image.png

這里我們需要手動配置一個buildpack包
所以輸入n 然后會需要輸入包地址如下

image.png

這里直接使用Vapor社區(qū)提供的包

https://github.com/vapor-community/heroku-buildpack

終端接下來提醒是否提交更改?如圖直接輸入y提交即可

image.png

是否直接部署?如圖 輸入y選擇部署

image.png

接下來可能需要等待一會兒的時間.就部署完成了

其中vapor heroku命令中除了vapor heroku init之外還有一個手動推送的命令vapor heroku push.以后的使用過程中每次更改后手動推送命令還是比較多的.

由于使用這種方式默認(rèn)創(chuàng)建的項目名稱是隨機的.下面附上更改項目名稱的命令:

heroku apps:rename newname
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市胰耗,隨后出現(xiàn)的幾起案子限次,更是在濱河造成了極大的恐慌,老刑警劉巖柴灯,帶你破解...
    沈念sama閱讀 218,036評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件掂恕,死亡現(xiàn)場離奇詭異,居然都是意外死亡弛槐,警方通過查閱死者的電腦和手機懊亡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來乎串,“玉大人店枣,你說我怎么就攤上這事√居” “怎么了鸯两?”我有些...
    開封第一講書人閱讀 164,411評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長长豁。 經(jīng)常有香客問我钧唐,道長,這世上最難降的妖魔是什么匠襟? 我笑而不...
    開封第一講書人閱讀 58,622評論 1 293
  • 正文 為了忘掉前任钝侠,我火速辦了婚禮该园,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘帅韧。我一直安慰自己里初,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,661評論 6 392
  • 文/花漫 我一把揭開白布忽舟。 她就那樣靜靜地躺著双妨,像睡著了一般。 火紅的嫁衣襯著肌膚如雪叮阅。 梳的紋絲不亂的頭發(fā)上刁品,一...
    開封第一講書人閱讀 51,521評論 1 304
  • 那天,我揣著相機與錄音浩姥,去河邊找鬼挑随。 笑死,一個胖子當(dāng)著我的面吹牛及刻,可吹牛的內(nèi)容都是我干的镀裤。 我是一名探鬼主播,決...
    沈念sama閱讀 40,288評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼缴饭,長吁一口氣:“原來是場噩夢啊……” “哼暑劝!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起颗搂,我...
    開封第一講書人閱讀 39,200評論 0 276
  • 序言:老撾萬榮一對情侶失蹤担猛,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后丢氢,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體傅联,經(jīng)...
    沈念sama閱讀 45,644評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,837評論 3 336
  • 正文 我和宋清朗相戀三年疚察,在試婚紗的時候發(fā)現(xiàn)自己被綠了蒸走。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,953評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡貌嫡,死狀恐怖比驻,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情岛抄,我是刑警寧澤别惦,帶...
    沈念sama閱讀 35,673評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站夫椭,受9級特大地震影響掸掸,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蹭秋,卻給世界環(huán)境...
    茶點故事閱讀 41,281評論 3 329
  • 文/蒙蒙 一扰付、第九天 我趴在偏房一處隱蔽的房頂上張望堤撵。 院中可真熱鬧,春花似錦悯周、人聲如沸粒督。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至族跛,卻和暖如春闰挡,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背礁哄。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評論 1 269
  • 我被黑心中介騙來泰國打工长酗, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人桐绒。 一個月前我還...
    沈念sama閱讀 48,119評論 3 370
  • 正文 我出身青樓夺脾,卻偏偏與公主長得像,于是被迫代替她去往敵國和親茉继。 傳聞我的和親對象是個殘疾皇子咧叭,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,901評論 2 355

推薦閱讀更多精彩內(nèi)容