使用heroku run bash命令时如何避免生成新dyno
如何避免
heroku run bash生成新dyno 嘿,我来帮你解决这个问题~首先得明确一个关键点:heroku run bash的设计初衷就是启动一个全新的一次性dyno,它和你正在运行的web dyno完全隔离,所以你没法通过它直接访问web dyno里生成的config.txt或者和那个运行中的jar服务器交互。
不过别担心,Heroku提供了专门的工具来连接到已运行的dyno——那就是heroku ps:exec。下面是具体的操作步骤:
步骤1:启用Heroku Exec功能
首先需要为你的应用开启这个功能,在本地终端执行:
heroku ps:exec:enable -a 你的应用名称
这个命令会在你的应用里添加必要的组件,让你能直接连接到运行中的dyno。
步骤2:连接到已运行的web dyno
开启功能后,直接执行下面的命令就能进入正在运行的web dyno的bash会话,完全不会生成新dyno:
heroku ps:exec -a 你的应用名称
如果你的应用有多个web dyno实例(比如web.1、web.2),你还可以指定具体要连接的实例:
heroku ps:exec -d web.1 -a 你的应用名称
为什么这个方法适合你?
- 你可以直接访问web dyno里生成的
config.txt文件,不用再担心新dyno里没有这个文件的问题; - 你能和正在运行的jar服务器处于同一个容器环境中,后续如果需要查看服务器日志、做临时调试操作都很方便;
- 这个连接是持久的,直到你主动退出bash会话,不会像
heroku run那样执行完命令就销毁dyno。
另外要注意:如果你的web dyno处于休眠状态(比如免费套餐的应用长时间没访问),需要先触发它启动(比如访问你的应用URL),再执行heroku ps:exec,否则会连接失败。
内容的提问来源于stack exchange,提问作者lambad
相关产品推荐
相关产品推荐

