【发布时间】:2026-01-29 18:25:01
【问题描述】:
我们正在使用 rest-client 在 Sidekiq 工作人员上发送外部 API 请求,这些工作人员在我们的 Elastic Beanstalk 管理的 EC2 实例上启动 as a process。
当Dir.home 失败时,rest-client 使用 netrc 和 netrc calls Dir.pwd。我们偶尔会看到此错误:
Errno::ENOENT: No such file or directory - getcwd
[GEM_ROOT]/gems/netrc-0.10.3/lib/netrc.rb:26 :in `pwd`
这表明ENV['HOME']没有设置,显然当前目录不再存在。通常,HOME 已在 EB 实例上设置,我们已尝试通过 eb setenv 设置它以确保安全。
问题是这种情况如何在 EB 上出现,以及我们将来如何避免这种情况。我犹豫不决,但也许我们没有在部署之间正确杀死 Sidekiq 进程,并且旧的 sidekiq 进程仍然存在,引用旧目录?我对EB还不是很熟悉;任何指导将不胜感激。
【问题讨论】:
标签: ruby-on-rails amazon-web-services amazon-ec2 sidekiq amazon-elastic-beanstalk