2017-01-13 66 views
0

我正在關注PluralSight有關流浪和hubot懈怠設置的教程。hubot-slack「無法找到模塊」 - 從新貴只

唯一的區別是我使用hubot-slack。

如果我通過從終端調用hubot腳本啓動hubot - 一切正常 - bot連接並響應命令。

不幸的是,當hubot作爲一個服務從新貴開始 - 我得到這個登錄到/var/log/upstart/myhubot.log`無法加載適配器鬆弛 - 錯誤:找不到模塊'hubot-slack'

/bin/hubot文件看起來像這樣(從CLI中被執行時,這只是正常):這是作爲一個服務執行

#!/bin/sh 
set -e 
npm install 
export PATH="node_modules:node_modules/.bin:node_modules/hubot/node_modules/.bin:$PATH" 
export HUBOT_SLACK_TOKEN={} 
exec node_modules/.bin/hubot --name "hubot" --adapter slack "[email protected]" 

.conf文件看起來像這樣(找不到模塊):

description "My hubot" 
author "Me [email protected]" 

start on runlevel [2345] 
stop on runlevel [016] 

setuid vagrant 

env HOME="/home/vagrant" 

chdir /vagrant/my-awesome-hubot 

console log 

script 
    export PATH="node_modules:node_modules/.bin:node_modules/hubot/node_modules/.bin:/usr/bin/coffee:/usr/bin/node:$PATH" 
    export HUBOT_SLACK_TOKEN={} 
    echo "DEBUG: `set`" >> /tmp/myhubot.log 
    exec node_modules/.bin/hubot --name "hubot" --adapter slack 
end script 

respawn 

請記住,從這些腳本中排除鬆弛標記。 調試顯示chdir做的是正確的事情,pwd與我手動執行腳本時完全相同。

我已經嘗試刪除整個nodejs項目和從頭開始與yeoman生成,也嘗試安裝hubot-slack globaly和本地但無濟於事。

如果是.conf文件 - 沒有npm安裝,但是在provision.sh文件中 - 我正在cd(作爲一個流浪用戶)到根目錄,執行npm install - 然後才重新啓動服務。我也確保我之前做清理前一輪測試的一切 - vagrant provision

cp /vagrant/upstart/myhubot.conf /etc/init/myhubot.conf 
sudo -u vagrant -i sh -c 'cd /vagrant/my-awesome-hubot; npm install' 
service myhubot restart 

你有什麼建議。

回答

1

我剛剛花了一天的時間解決了同樣的問題,因爲這個未答覆的問題,所以認爲我會更新我的解決方案。

當生成hubot的文件夾中,當前hubot生成的應用程序以命令HUBOT_SLACK_TOKEN=xoxb-YOUR-TOKEN-HERE ./bin/hubot --adapter slack以cli啓動。因此使用默認的bin/hubot腳本。

你的conf文件,因此需要挑選這件事應該運行以下命令:

description "My hubot" 
author "Me [email protected]" 

start on runlevel [2345] 
stop on runlevel [016] 

script 
    chdir /vagrant/my-awesome-hubot 
    export PATH="node_modules:node_modules/.bin:node_modules/hubot/node_modules/.bin:/usr/bin/coffee:/usr/bin/node:$PATH" 
    HUBOT_SLACK_TOKEN=xoxb-YOUR-TOKEN-HERE ./bin/hubot --adapter slack --name "hubot" >> /tmp/myhubot.log 
end script 

respawn