Heroku尝试启动我的应用程序时出现EADDRINUSE错误。
我研究了有关该主题的其他问题,他们在其中遇到了相同的错误,并且从理论上我理解这与同一端口上存在的另一个进程有关。但是,我不知道它将在我的应用程序中使用哪个过程。
我只有一个应用程序正在启动,而存在的唯一其他进程是Sequelize。似乎Heroku尝试使用多个端口,并且都导致EADDRINUSE错误
这一个错误实例:
2018-08-06T01:55:39.346648+00:00 app[web.1]: events.js:183
2018-08-06T01:55:39.346654+00:00 app[web.1]: throw er; // Unhandled 'error' event
2018-08-06T01:55:39.346655+00:00 app[web.1]: ^
2018-08-06T01:55:39.346657+00:00 app[web.1]:
2018-08-06T01:55:39.346658+00:00 app[web.1]: Error: listen EADDRINUSE :::47216
2018-08-06T01:55:39.346660+00:00 app[web.1]: at Object._errnoException (util.js:992:11)
2018-08-06T01:55:39.346662+00:00 app[web.1]: at _exceptionWithHostPort (util.js:1014:20)
2018-08-06T01:55:39.346663+00:00 app[web.1]: at Server.setupListenHandle [as _listen2] (net.js:1355:14)
2018-08-06T01:55:39.346665+00:00 app[web.1]: at listenInCluster (net.js:1396:12)
2018-08-06T01:55:39.346666+00:00 app[web.1]: at Server.listen (net.js:1480:7)
2018-08-06T01:55:39.346668+00:00 app[web.1]: at Function.listen (/app/node_modules/express/lib/application.js:618:24)
2018-08-06T01:55:39.346670+00:00 app[web.1]: at Object.<anonymous> (/app/dist/index.js:72:5)
2018-08-06T01:55:39.346671+00:00 app[web.1]: at Module._compile (module.js:652:30)
2018-08-06T01:55:39.346673+00:00 app[web.1]: at Object.Module._extensions..js (module.js:663:10)
2018-08-06T01:55:39.346674+00:00 app[web.1]: at Module.load (module.js:565:32)
2018-08-06T01:55:39.346676+00:00 app[web.1]: …Run Code Online (Sandbox Code Playgroud) 我有一个 Dockerfile,用于使用go build. 我研究过,确实go build被推荐用于生产。
但是,我找不到关于原因的正确答案。
我了解go run创建一个临时文件,该文件会在应用程序终止时进行清理。但是如果我使用 Docker,为什么用go run代替不好go build?