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),
])
最終的樣式
設(shè)置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
輸入應(yīng)用名稱
在下一個屏幕上,選擇部署區(qū)域和唯一的應(yīng)用程序名稱褐健。如果您不想選擇應(yīng)用程序的名稱钩骇,請將該字段保留為空白,Heroku會自動生成一個唯一的標(biāo)記來為您標(biāo)識應(yīng)用程序铝量。無論您是創(chuàng)建名稱倘屹,還是Heroku為您分配名稱,請記下名稱慢叨;您將在以后配置應(yīng)用程序時使用它纽匙。
點擊創(chuàng)建應(yīng)用
應(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
第一步選擇國家
輸入
y
選擇美國就好
第二步選擇部署環(huán)境
其中docker也是非常方便的.在這里只介紹一個buildpack.
輸入
2
懸著buildpack作為部署環(huán)境
第三步選擇Swift的版本號
直接輸入
5.3
第四步是否使用默認(rèn)的Buildpack
這里我們需要手動配置一個buildpack包
所以輸入n
然后會需要輸入包地址如下
這里直接使用Vapor社區(qū)提供的包
https://github.com/vapor-community/heroku-buildpack
終端接下來提醒是否提交更改?如圖直接輸入y
提交即可
是否直接部署?如圖 輸入y
選擇部署
接下來可能需要等待一會兒的時間.就部署完成了
其中vapor heroku命令中除了vapor heroku init
之外還有一個手動推送的命令vapor heroku push
.以后的使用過程中每次更改后手動推送命令還是比較多的.
由于使用這種方式默認(rèn)創(chuàng)建的項目名稱是隨機的.下面附上更改項目名稱的命令:
heroku apps:rename newname