我有一个简单的GO服务器,我试图推送到Bosh lite上的云代工厂(Vagrant + Virtual box。)
以下是我的go应用程序的源代码设置:
〜/ workspace / src / github.com / me /(父目录)
-Godeps
-weight weight.go< - 主文件。
manifest.yml
Procfile
我的weight.go是一个收听9000的简单服务器。
1)manifest.yml看起来像这样。
applications:
- name: weight
memory: 128MB
instances: 1
2)Procfile看起来像这样。
worker: bin/weight
3)我使用默认的buildpack。
4)当我用cf push weight -c“./bin/weight;sleep 1d”推送我的应用程序时,我得到:
a-424e-b509-6df11fb32cc7 ({"state"=>"STOPPED"})
2016-03-13T11:02:45.70-0700 [DEA/0] OUT Got staging request for app with id 16d3795a-8cda-424e-b509-6df11fb32cc7
2016-03-13T11:02:46.84-0700 [API/0] OUT Updated app with guid 16d3795a-8cda-424e-b509-6df11fb32cc7 ({"state"=>"STARTED"})
2016-03-13T11:02:46.89-0700 [STG/0] OUT -----> Downloaded app package (12K)
2016-03-13T11:02:48.76-0700 [STG/0] OUT -----> Downloaded app buildpack cache (78M)
2016-03-13T11:02:48.82-0700 [STG/0] ERR Cloning into '/tmp/buildpacks/go-buildpack'...
2016-03-13T11:03:05.66-0700 [STG/0] OUT Submodule 'compile-extensions' (https://github.com/cloudfoundry/compile-extensions.git) registered for path 'compile-extensions'
2016-03-13T11:03:05.68-0700 [STG/0] ERR Cloning into 'compile-extensions'...
2016-03-13T11:03:07.59-0700 [STG/0] OUT Submodule path 'compile-extensions': checked out '26a578c06a62c763205833561fec1c5c6d34deb6'
2016-03-13T11:03:07.61-0700 [STG/0] OUT -------> Buildpack version 1.7.3
2016-03-13T11:03:09.81-0700 [STG/0] OUT https://pivotal-buildpacks.s3.amazonaws.com/concourse-binaries/godep/godep-v55-linux-x64.tgz
2016-03-13T11:03:09.88-0700 [STG/0] OUT -----> Checking Godeps/Godeps.json file.
2016-03-13T11:03:09.92-0700 [STG/0] OUT -----> Using go1.5.3
2016-03-13T11:03:09.92-0700 [STG/0] OUT -----> Running: godep go install -tags cloudfoundry .
2016-03-13T11:03:11.19-0700 [STG/0] OUT -----> Uploading droplet (2.0M)
2016-03-13T11:03:25.11-0700 [DEA/0] OUT Starting app instance (index 0) with guid 16d3795a-8cda-424e-b509-6df11fb32cc7
2016-03-13T11:03:34.93-0700 [DEA/0] OUT Removing crash for app with id 16d3795a-8cda-424e-b509-6df11fb32cc7
2016-03-13T11:03:34.93-0700 [DEA/0] OUT Stopping app instance (index 0) with guid 16d3795a-8cda-424e-b509-6df11fb32cc7
2016-03-13T11:03:34.93-0700 [DEA/0] OUT Stopped app instance (index 0) with guid 16d3795a-8cda-424e-b509-6df11fb32cc7
2016-03-13T11:03:56.81-0700 [DEA/0] OUT Starting app instance (index 0) with guid 16d3795a-8cda-424e-b509-6df11fb32cc7
**2016-03-13T11:03:57.79-0700 [DEA/0] ERR Instance (index 0) failed to start accepting connections**
2016-03-13T11:03:57.80-0700 [API/0] OUT App instance exited with guid 16d3795a-8cda-424e-b509-6df11fb32cc7 payload: {"cc_partition"=>"default", "droplet"=>"16d3795a-8cda-424e-b509-6df11fb32cc7", "version"=>"2eeebbf8-e84e-412a-aeba-2adc0cffea6b", "instance"=>"910eba711c6e414bb7c6324565d0a9af", "index"=>0, "reason"=>"CRASHED", "exit_status"=>127, "exit_description"=>"failed to accept connections within health check timeout", "crash_timestamp"=>1457892237}
我尝试过设置
cf set-env weight PORT 9000
没有成功, 我是否用清单和yaml做了一些时髦的事情?
weight.go在本地运行。
代码:
func main (){
http.HandleFunc("/weight", weightHandler)
err:=http.ListenAndServe("localhost:"+getPort(), nil)
if err != nil {
fmt.Println("got an err ")
log.Fatalln(err)
}else{
fmt.Println("Apparently it works ?")
}
//fmt.Println("Hi")
//time.Sleep(1*time.Hour)
}
func getPort() string {
var port string
if port = os.Getenv("PORT"); len(port) == 0 {
fmt.Println("Didn't Found it")
fmt.Println(port)
port = DEFAULT_PORT
}else{
fmt.Println("Gotim")
fmt.Println(port)
}
return port
}
我确实得到随机PORT CF分配的日志,仍然停留在
2016-03-13T16:58:40.90-0700 [API/0] OUT App instance exited with guid e5d417bd-c38d-4239-aa61-e9ca67fce79a payload: {"cc_partition"=>"default", "droplet"=>"e5d417bd-c38d-4239-aa61-e9ca67fce79a", "version"=>"8d7e80b3-69d5-4c83-9d37-1159d5deeba8", "instance"=>"14223d325c204406b87a131c065c16cc", "index"=>0, "reason"=>"CRASHED", "exit_status"=>-1, "exit_description"=>"failed to accept connections within health check timeout", "crash_timestamp"=>1457913520}
*固定IT:问题是在localhost上监听,我没有指定IP,我很高兴*
答案 0 :(得分:2)