Pivotal Web Service是Pivotal公司提供的公有云服务,其底层架构是Cloud Foundry。本文今天就要介绍如何使用Cloud Foundry客户端工具cf在PWS上部署应用。为什么要将应用部署到云上呢?因为云在那儿。
本文将要部署的系统包含两个应用,一个是react前端应用,一个是spring boot后台服务。看看如何在PWS上部署这两个应用吧。
1在PWS上部署spring boot应用
1在Pivotal官网(https://account.run.pivotal.io/z/uaa/sign-up)上注册帐号
2在Cloud Foundry的github页面(https://github.com/cloudfoundry/cli#downloads)下载cf客户端并安装
3使用cf客户端登录Pivotal帐号,即执行以下命令
cf login -a https://api.run.pivotal.io
4进入到你的项目目录,新建manifest.yml文件,内容如下:
add manifest.yml
---
applications:
- name: readinglist
instances: 1
host: readinglist
path: build/libs/readinglist-0.0.1-SNAPSHOT.jar
结合项目自身情况,合理设置name, host,path等属性
5在项目目录下执行cf push命令,这时,你会看到cf会上传你的应用并部署。
至此,应用已经部署完毕,但现在你就自信回头,有可能会造成意想不到的后果。所以在回城前至少在周围草丛插个眼:
6查看应用日志:执行命令cf logs readinglist --recent
以及访问应用主页http://readinglist.cfapps.io/,假如一切正常,则大功告成。但假如看到有数据库相关错误,则说明应用需要一个数据库。
7配置数据库
运行cf marketplace命令,查看PWS提供了哪些服务。
假如我们需要使用postgresql数据库,可以看到在cf marketplace结果里面有一个名为elephantsql的服务是为我们提供postgresql数据库
运行cf marketplace -s elephantsql查看该服务提供哪些套餐,以及这些套餐的相关规格和收费信息
运行cf create-service elephantsql turtle readinglistDB,创建一个名为readinglistDB的postgresql服务,采用的是elephantsql提供的turtle套餐(这是一个免费套餐)
运行cf bind-service reading list readinglistDB命令,将我们刚刚创建的服务readinglistDB,与我们的应用readinglist绑定起来
运行cf restart readinglist重启服务,查看日志及访问主页,可以看到你可以访问数据库了
8访问数据库
在某些情况下,假如应用不能自动创建数据库表等数据,我们需要直接访问数据库来手工创建这些数据库表。以postgresql为例,登录Pivotal项目控制台页面(console.run.pivotal.io),查看readinglistDB服务的相关信息,点击Manage,跳转到postgresql服务提供商的页面,页面上显示了我们项目使用的posgresql相关配置,如url,用户名,密码等。利用这些信息通过postgresql客户端登录数据库,执行相关初始化sql,应用即能正常运行了。
2部署react应用
由于react应用打包之后就是一些静态文件,所以本质上就是静态文件的部署
1构建react应用,进入到构建目录,创建一个名为Staticfile的空白文件
2cf push