【发布时间】:2018-11-14 20:11:49
【问题描述】:
我对 golang 有点陌生,我仍在努力理解 go run main.go 和 go build [-o] main.go 之间的区别。
我已经构建了一个小型 gin 应用程序,以便在本地使用 docker 和 kubernetes 进行试用。
package main
import (
"net/http"
"github.com/gin-gonic/gin"
)
func main() {
r := gin.Default()
r.GET("/healthz", func(c *gin.Context) {
c.String(http.StatusOK, "")
})
r.GET("/readinez", func(c *gin.Context) {
c.String(http.StatusOK, "")
})
r.Run() // listen and serve on 0.0.0.0:8080
}
应用程序在go run main.go 下运行得非常好。
我的 Dockerfile:
FROM golang:latest
RUN mkdir /app
ADD . /app/
WORKDIR /app
RUN go build -o main .
CMD ["/app/main"]
失败了:
它肯定在那里,当我go run main.go 时它也有效。构建有什么区别?
我不确定在这里做什么。来自节点背景。这确实让菜鸟有些发疯......当然有一个简单的解决方案。
【问题讨论】: