如何在Heroku上使用Dockerfile暴露端口?

16

我正在尝试在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上完成这个操作?


这就是做这件事的方法。你有任何错误吗? - German
我没有任何错误,但我认为Heroku不允许您公开特定端口。它不是会为您分配端口吗?当我在Node应用程序中公开端口时,我们使用process.env.PORT进行访问。 - jhamm
2个回答

21

那么如何创建多个 PORT 呢? - jhamm
2
你不能更改它,这与构建包部署相同 - Heroku路由器接受443/80端口的请求,然后将请求代理到应用程序中随机分配的端口号。一个应用程序只有1个$PORT分配给它。 - John Beynon
1
John Beynon是正确的。你不能在Heroku上做这件事。你只能得到$PORT环境变量,而已。 - Derick Bailey
所以我在这个容器中有多个数据库。我认为如果我要使用Heroku,我需要创建多个应用程序,每个应用程序都暴露一个单独的“PORT”,而不是一个暴露多个“PORT”的应用程序。 - jhamm
路由器只接受HTTP请求 - 你无法在应用程序之间进行通信...你应该使用Heroku Postgres数据库或通过插件安装一个。 - John Beynon

0

你可能想要查看Dockhero插件。它是在Heroku应用程序旁部署补充资源的好方法,并支持docker-compose多端口映射。Web应用程序本身仍应在Heroku dynos上运行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接