将Kitura Swift应用程序部署到IBM Bluemix

当寻找将Kitura Swift应用程序部署到Bluemix的选项时,您可能会跨IBM Cloud Application Tools运行。 IBM Cloud Application Tools提供了一个Mac应用程序,该应用程序可以帮助您将应用程序部署到Bluemix服务器。 不幸的是,我对IBM Cloud Tools并没有积极的经验,因为它一直处于冻结状态,无法将我的应用程序上载到服务器。

在对IBM Cloud Application Tools感到失望之后,我转向了命令行工具。 IBM在Github上提供了一个入门项目,他们在其中讨论使用终端进行部署的过程。 不幸的是,他们错过了很多步骤,目前尚不清楚如何成功进行部署。 希望这篇文章将列出执行到IBM Bluemix的部署所需的所有步骤。

让我们从一个名为“ Hello-Pokemon”的简单Kitura项目开始。 Package.swift文件对Kitura存储库具有单个依赖性,如下所示:

main.Swift项目中,创建一条返回Pokemon名称的单一路线,如下所示:

如果访问URL http:// localhost:8090 / pokemon,您应该看到“皮卡丘”显示为返回的文本。 这对于我们的实现来说就差不多了。 让我们将其部署到Bluemix。

第一步是在Bluemix上创建一个帐户。 您可以访问Sign Up for IBM Bluemix页面来创建一个免费帐户。 请注意,Bluemix最多可以免费使用30天。 在使用您的凭据创建金额“ Login ”之后。

成功登录后,您将进入“ 仪表板”屏幕。 点击“创建应用”按钮开始使用。

下一个屏幕是模板选择屏幕。 向下滚动并在Cloud Foundry Apps下选择“ Swift运行时

提供应用程序的名称,然后单击“创建”按钮,如下所示:

单击“创建”按钮后,将带您进入“入门”屏幕,其中将列出部署该应用程序所需执行的所有步骤。

为了使用命令行部署应用程序,请确保已安装Cloud Foundry CLI。 您可以使用brew安装Cloud Foundry CLI,如下所示:

  brew install cloudfoundry / tap / cf-cli 

下一步是创建用于部署的配置文件。 该配置文件称为“ manifest.yml ”。 在您的应用程序的根目录中创建“ manifest.yml”,并添加以下内容。

 应用范围: 
姓名:Hello-Pokemon
随机路由:正确
记忆体:256M
命令:Hello-Pokemon
buildpack:swift_buildpack

命令的值是“ Hello-Pokemon”,它是项目的名称,它来自Package.swift文件,如下所示:

下一步是设置API端点。 从终端运行以下命令。

  cf api https://api.ng.bluemix.net 

您应该会看到类似的结果。

接下来,您需要使用您创建的Bluemix凭证登录到CloudFoundry。

  cf登录 

最后推送您的应用程序。

  cf推 

冲泡咖啡或其他东西,因为这需要一段时间!

Aaaaand我们回来了……。 有错误🙁

让乐趣开始! 运行以下命令以查看日志。

  cf记录Hello-Pokemon --recent 

这是结果,显示错误日志。

看来我们的应用程序从未通过身体检查! 🙂让我们解决这个问题。 运行以下命令。

  cf推送Hello-Pokemon -u进程 

您还可以在manifest.yml中添加以下属性,以始终执行运行状况检查。

 健康检查类型:过程 

重新开始冲泡咖啡,因为这将需要一些时间!

如果一切正常,您将看到以下消息。

恭喜,您刚部署了第一个Swift Kitura应用程序。 访问Hello-Pokemon.mybluemix.net/pokemon以运行您的应用程序。

WTF!

我们将Kitura应用程序配置为在端口8090上运行。这在main.swift文件中实现。 不幸的是,这不是IBM Bluemix运行该应用程序的默认端口。 因此,该应用程序在Bluemix上运行的端口是什么。那不是那么容易找到的。

深入研究源代码,您会发现如果未设置环境变量,服务器将还原为8090。 让我们跳入main.swift文件,并将服务器从8090更改为8080,如下所示。

进行更改后,构建应用程序并再次推送到服务器。

 快速构建 
  cf推送Hello-Pokemon -u进程 

让我们再煮一杯热咖啡!

推送完成后。 转到URL http://hello-pokemon.mybluemix.net/pokemon。

是!!! 最后!!! 有效!!

在Kitura Slack频道上,一些用户列出了执行成功部署的更多步骤,但是以我的经验,上述步骤足以使API正常工作。

很棒的工作! 去喝一杯你应得的咖啡!

更新:

正如Alex所指出的,您可以允许代码找出要使用的端口。