Pivotal Web Service是Pivotal公司提供的公有云服務(wù)链峭,其底層架構(gòu)是Cloud Foundry。本文今天就要介紹如何使用Cloud Foundry客戶端工具cf在PWS上部署應(yīng)用阐污。為什么要將應(yīng)用部署到云上呢?因?yàn)樵圃谀莾骸?/p>
本文將要部署的系統(tǒng)包含兩個(gè)應(yīng)用,一個(gè)是react前端應(yīng)用恼除,一個(gè)是spring boot后臺(tái)服務(wù)疾牲≈采樱看看如何在PWS上部署這兩個(gè)應(yīng)用吧。
1在PWS上部署spring boot應(yīng)用
1在Pivotal官網(wǎng)(https://account.run.pivotal.io/z/uaa/sign-up)上注冊(cè)帳號(hào)
2在Cloud Foundry的github頁(yè)面(https://github.com/cloudfoundry/cli#downloads)下載cf客戶端并安裝
3使用cf客戶端登錄Pivotal帳號(hào)阳柔,即執(zhí)行以下命令
cf login -a https://api.run.pivotal.io
4進(jìn)入到你的項(xiàng)目目錄焰枢,新建manifest.yml文件,內(nèi)容如下:
add manifest.yml
---
? applications:
? - name: readinglist
? instances: 1
? host: readinglist
? path: build/libs/readinglist-0.0.1-SNAPSHOT.jar
結(jié)合項(xiàng)目自身情況舌剂,合理設(shè)置name济锄, host,path等屬性
5在項(xiàng)目目錄下執(zhí)行cf push命令霍转,這時(shí)荐绝,你會(huì)看到cf會(huì)上傳你的應(yīng)用并部署。
至此谴忧,應(yīng)用已經(jīng)部署完畢很泊,但現(xiàn)在你就自信回頭角虫,有可能會(huì)造成意想不到的后果。所以在回城前至少在周圍草叢插個(gè)眼:
6查看應(yīng)用日志:執(zhí)行命令cf logs readinglist --recent
以及訪問(wèn)應(yīng)用主頁(yè)http://readinglist.cfapps.io/委造,假如一切正常戳鹅,則大功告成。但假如看到有數(shù)據(jù)庫(kù)相關(guān)錯(cuò)誤昏兆,則說(shuō)明應(yīng)用需要一個(gè)數(shù)據(jù)庫(kù)枫虏。
7配置數(shù)據(jù)庫(kù)
運(yùn)行cf marketplace命令,查看PWS提供了哪些服務(wù)爬虱。
假如我們需要使用postgresql數(shù)據(jù)庫(kù)隶债,可以看到在cf marketplace結(jié)果里面有一個(gè)名為elephantsql的服務(wù)是為我們提供postgresql數(shù)據(jù)庫(kù)
運(yùn)行cf marketplace -s elephantsql查看該服務(wù)提供哪些套餐,以及這些套餐的相關(guān)規(guī)格和收費(fèi)信息
運(yùn)行cf create-service elephantsql turtle readinglistDB跑筝,創(chuàng)建一個(gè)名為readinglistDB的postgresql服務(wù)死讹,采用的是elephantsql提供的turtle套餐(這是一個(gè)免費(fèi)套餐)
運(yùn)行cf bind-service reading list readinglistDB命令,將我們剛剛創(chuàng)建的服務(wù)readinglistDB,與我們的應(yīng)用readinglist綁定起來(lái)
運(yùn)行cf restart readinglist重啟服務(wù)曲梗,查看日志及訪問(wèn)主頁(yè)赞警,可以看到你可以訪問(wèn)數(shù)據(jù)庫(kù)了
8訪問(wèn)數(shù)據(jù)庫(kù)
在某些情況下,假如應(yīng)用不能自動(dòng)創(chuàng)建數(shù)據(jù)庫(kù)表等數(shù)據(jù)虏两,我們需要直接訪問(wèn)數(shù)據(jù)庫(kù)來(lái)手工創(chuàng)建這些數(shù)據(jù)庫(kù)表愧旦。以postgresql為例,登錄Pivotal項(xiàng)目控制臺(tái)頁(yè)面(console.run.pivotal.io)定罢,查看readinglistDB服務(wù)的相關(guān)信息笤虫,點(diǎn)擊Manage,跳轉(zhuǎn)到postgresql服務(wù)提供商的頁(yè)面祖凫,頁(yè)面上顯示了我們項(xiàng)目使用的posgresql相關(guān)配置琼蚯,如url,用戶名惠况,密碼等凌停。利用這些信息通過(guò)postgresql客戶端登錄數(shù)據(jù)庫(kù),執(zhí)行相關(guān)初始化sql售滤,應(yīng)用即能正常運(yùn)行了罚拟。
2部署react應(yīng)用
由于react應(yīng)用打包之后就是一些靜態(tài)文件,所以本質(zhì)上就是靜態(tài)文件的部署
1構(gòu)建react應(yīng)用完箩,進(jìn)入到構(gòu)建目錄赐俗,創(chuàng)建一個(gè)名為Staticfile的空白文件
2cf push