我有一个 Dockerfile,用于编译 Go 应用程序go build。我研究过,确实go build被推荐用于生产。但是我找不到一个正确的答案来解释为什么。我了解go run会创建一个临时文件,该文件会在应用程序终止时进行清理。但是,如果我使用的是 Docker,为什么使用go run而不是Docker 不好go build呢?
1 回答

MYYA
TA贡献1868条经验 获得超4个赞
几个原因:
Go 应用程序不需要 Go 工具链,就像 C 应用程序不需要
gcc
. 如果你使用go build
,你可以只部署一个二进制文件;如果使用go run
,则必须安装工具链。go run
每次运行时都会不必要地编译应用程序,从而增加启动时间。go run
将应用程序分叉到一个新进程,通过模糊 PID 和退出状态使进程管理不必要地复杂化。go run
当您只打算运行应用程序时,可能会意外吸收代码更改。仅在您需要新的二进制文件时使用go build
,可以让您每次都重新运行相同、一致的二进制文件,而不会发生意外更改。
- 1 回答
- 0 关注
- 203 浏览
添加回答
举报
0/150
提交
取消