我有一个简单的 GO 服务器,我试图将它推送到 Bosh lite(Vagrant + Virtual box)上的云代工厂。这是我的 go 应用程序的源代码设置:~/workspace/src/github.com/me/(父目录)-Godeps-weight weight.go <-- 主文件。清单文件.yml配置文件我的 weight.go 是一个简单的服务器,可以监听 9000。1) manifest.yml 看起来像这样。applications:- name: weight memory: 128MB instances: 12 ) Procfile 看起来像这样。worker: bin/weight3)我使用默认的buildpack。4 ) 当我用 cf push weight -c "./bin/weight;sleep 1d" 推送我的应用程序时,我得到:我试过设置cf set-env weight PORT 9000没有成功,我是不是在用 manifest 和 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}*已修复:问题是在本地主机上侦听,我没有指定 IP,我很高兴 *
添加回答
举报
0/150
提交
取消