我正在尝试将工头用于heroku。这就是我的设置中存在的内容:
我可以触发一个可以正常工作的示例test.rb文件。代码如下:
root@ubuntu-test:~# cat test.rb
#/usr/local/rvm/rubies/ruby-1.9.3-p362/bin/ruby
require 'rubygems'
puts "Hello world!"
使用代码:
创建了一个Gemfilesource :rubygems
gem 'sinatra', '1.1.0'
gem 'thin'
使用代码创建了一个Procfile: web:bundle exec ruby test.rb -p $ PORT
发布的领班开始 - 失败如下:
06:37:09 web.1 | started with pid 3638
06:37:09 web.1 | .: 39: .profile: not found
06:37:09 web.1 | exited with code 2
06:37:09 system | sending SIGTERM to all processes
SIGTERM received
此外,我安装了特定版本的工头(0.60.2),在启动时显示与上述相同的错误。
.profile文件位于我的机器的以下位置:
/home/user/.profile
/etc/skel/.profile
/root/.profile
包含: #〜/ .profile:由Bourne兼容的登录shell执行。
if [ "$BASH" ]; then
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
fi
mesg n
这可能是因为错误的路径设置?什么阻止了工头的开始?
答案 0 :(得分:1)
我收到了类似的错误,但稍微详细一点:
21:16:46 bridge.1 | /var/lib/gems/1.9.1/gems/foreman-0.61.0/bin/foreman-runner: 37: .: .profile: not found
所以我看了一下foreman-runner,看起来它正在尝试从当前目录加载一个.profile文件。虽然我从一个目录中运行工头,但我仍然没有找到它。
看起来foreman-runner是用-p参数调用的。然后它测试.profile文件的存在,然后才尝试获取它。因此它会检查文件但无法获取文件。实际执行源的行如下:
. .profile
此文件启动#!/ bin / sh所以我运行/ bin / sh并尝试了。 .profile来自命令行,果然它抱怨找不到.profile,是吗?!实际上它说的是:
/bin/sh: 4: .: .profile: not found
那里的4是什么?也许它只是不喜欢我的.profile中的某些东西。
所以我把我的.profile移到了profile.bak和中提琴,工头现在跑了。