我正在使用 Go 尝试使用 IBM 的 BlueMix 创建一个简单的“hello world”-eque 脚本。我已经能够使用他们运行良好的 hello world 脚本,但是在编写我自己的脚本时它失败了。我知道您需要为端口获取环境变量,这就是我所做的,但是有了这个,检查仍然无法启动服务。package mainimport ( "io" "net/http" "log" "os" "fmt")const ( DEFAULT_PORT = "4001" DEFAULT_HOST = "localhost")func HelloServer(w http.ResponseWriter, req *http.Request) { io.WriteString(w, "hello, world!\n")}func main() { http.HandleFunc("/hello", HelloServer) var port string if port = os.Getenv("VCAP_APP_PORT"); len(port) == 0 { port = DEFAULT_PORT } var host string if host = os.Getenv("VCAP_APP_HOST"); len(host) == 0 { host = DEFAULT_HOST } log.Printf("Using host %v+\n", host) log.Printf("Using port %v+\n", port) fmt.Println("######" + port) err := http.ListenAndServe(host+":"+port, nil) if err != nil { log.Printf("ListenAndServe: ", err) }}非常感谢有关为什么该程序失败的任何帮助。
1 回答
MYYA
TA贡献1868条经验 获得超4个赞
我编写的上述程序是正确的,并且可以正常运行。问题是 procfile 未正确设置。blueMix 在其示例 Go 程序中使用的 procfile 是web: gohelloworld
.
gohelloworld
可以在 godeps/Godeps.json 文件中找到作为ImportPath
值。因此,当生成您的 Godep 文件时,生成的值ImportPath
是您应该放在 procfile 中的值。
就我而言,它应该是:web: test
.
- 1 回答
- 0 关注
- 149 浏览
添加回答
举报
0/150
提交
取消