我正在尝试使用docker在heroku上托管一个spigot minecraft服务器。我知道heroku并不真正支持tcp,所以我使用ngrok(localhost tunneling)来解决这个问题。该图像基于官方的openjdk 8-jre图像,启动spigot和ngrok,然后获取ngrok地址并将其上载到名为ix.io的pastebin服务。当我在本地运行docker镜像时,一切正常,但是当我尝试在heroku上运行时,它说:
Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
Stopping process with SIGKILL
State changed from starting to crashed
完整的日志可以在这里找到:https://gist.githubusercontent.com/paperbenni/6c1f4567dbf02cda299230eeb3391fc0/raw/7832444ed358131c9c6c57e330baa62b74cd113e/heroko%2520docker%2520spigot%2520logs
这里发生了什么?是否必须使用nginx之类的某种Web服务才能从Web浏览器访问它才能使该应用程序被视为有效?(我知道拼写错误的句子很长,我知道)我真的不明白这是什么继续在这里。
旁注:日志中存在一些内存错误。当容器限于512mb RAM时,该容器在本地运行良好,因此也许有人可以帮我解决这个问题。
最佳答案
检查您的端口是否正确,并确保您仍有heroku运行时间。那可能是错误。希望我能帮上忙! :)
编辑:当您运行服务器时,它通过“dynos”运行。这些测功机只能具有512mb RAM。如果您的世界使用了更多内存,请考虑使用更小的内存或降低RAM。
较低的RAM:https://www.spigotmc.org/threads/server-optimization-lowering-ram.10999/
它应该在属性xml文件等中。
关于docker - 使用docker在Heroku上插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49738087/