IBM正在为他的平台使用他的框架Kitura开发服务器端Swift应用程序提供设施和指导.我认为作为Cloudfoundry提供者,使用正确的Swift buildpack,我们必须能够部署通用服务器端Swift代码.
最后,在学习CF的部分时,我达到了使用CloudFoundry CLI的程度:
>我正在连接到Bluemix API端点(api .eu-gb .bluemix .net)
>登录确定(将超时设置env.var CF_DIAL_TIMEOUT扩展为20后)
>制作“cf push”.它创建应用程序并上传和编译所有内容.
>应用程序状态为“正在运行”.
但是当我加载页面(https://sommobilitatcore.eu-gb.mybluemix.net/)时,我得到:
404 Not Found: Requested route ('sommobilitatcore.eu-gb.mybluemix.net') does not exist.
任何人都可以帮助我吗?谢谢!
一些背景:
manifest.yml:
applications: - path: . memory: 256M instances: 1 name: SomMobilitatCore disk_quota: 1024M buildpack: https://github.com/IBM-Swift/swift-buildpack.git
web: App
(main.swift在Source / App /中)
在Vapor Config文件中没有配置端口,然后Vapor正在尝试侦听端口80:
import Vapor import HTTP let drop = Droplet() let _ = drop.config["app","key"]?.string ?? "" drop.get("/") { request in return try drop.view.make("welcome.html") } (...) let port = drop.config["app","port"]?.int ?? 80 // Print what link to visit for default port drop.serve()
更新:
最后让它在没有procfile,manifest.yml的情况下工作
- path: . instances: 1 memory: 256M disk_quota: 1024M name: SomMobilitat4 command: App --env=production --workdir="./" buildpack: swift_buildpack
和/Config/production/servers.json:
{ "production": { "port": "$PORT" } }
我既没有在main.swift文件中指定port变量.随着更新的Vapor版本:
import Vapor import HTTP let drop = Droplet() drop.get("/") { request in return "hello vapor in bluemix cloudfoundry" } drop.run()
如果您是Cloudfoundry或IBM Bluemix的新手,这是一种工作方式:
>您在Cloudfoundry提供商中注册(例如:bluemix)
>你在当地有Vapor项目.
>使用以下短行添加.cfignore文件:Packages /
避免将包上传到服务器.
>添加提到的manifest.yml文件.
>下载并安装Cloudfoundry CLI:https://docs.cloudfoundry.org/cf-cli/
使用CLI:
> cf api https://api.eu-gb.bluemix.net
> cf登录
> cf推