如何使用Dockerfile公开Heroku上的端口?

我想在Heroku上部署一个Docker镜像,并试图了解如何公开多个端口。 这里是我试图在Heroku部署中运行的Docker命令:

docker run \ -p 2222:22 \ -p 33306:3306 \ -p 27017:27017 \ -p 28015:28015 \ -p 29015:29015 \ -p 8080:8080 \ test/db-migration 

我如何在Heroku中做到这一点?

你不能 – 你应该使用$ PORT环境variables,它将被随机分配,然后由Heroku路由器映射到端口80。 另外,只有http请求被接受。 有关更多详细信息,请参阅https://devcenter.heroku.com/articles/container-registry-and-runtime#dockerfile-commands-and-runtime

你可能想看看Dockhero插件。 这是与Heroku应用程序一起部署补充资源的好方法,它支持使用多端口映射的docker-compose。 networking应用程序本身仍然应该在Heroku dynos上运行。