"我在Heroku文档中看到了这一点“
Heroku Exec创建的SSH会话不会将配置变量设置为环境变量(即,会话中的env不会列出heroku config:set设置的配置变量)。
我需要能够通过SSH进入我们的sidekiq容器并在那里运行一个控制台会话。为此,我需要访问ENV变量。我不能在一次性的bash容器中这样做,因为sidekiq容器的配置是不同的,我需要(通过控制台)确认值设置正确。
大概是这样的:heroku ps:exec -a [our-app] -d [sidekiq.1] --with-env-vars
我如何使用heroku ps:exec
(或类似的命令)ssh到一个现有的dyno中,并显示配置变量?
1条答案
按热度按时间zwghvu4y1#
没有最理想的,但有一个选项,这是对我有帮助。
标识命令调用
这是为了确定将包含环境变量的潜在进程。
ps auxfww
给予结果类似于:在本例中,
bash --login -c bundle exec puma
将是我们的ENV流程选择器。加载您的ENV变量
然后运行
source
命令,在每次通过ps:exec
连接时调用ENVSsource <(<DATA>)
:在调用中导出变量pgrep -f "<IDENTIFIED_COMMAND>"
:选择PIDcat /proc/<PID>/environ
:包含应用程序环境变量strings
:将“二进制”行转换为字符串行在此之后,您将在控制台中看到主要的ENV变量。
最后,将您的
source
调用复制到一个合适的位置,以便在需要时使用它。