2016-08-19 62 views
1

我試圖將一個Node.js應用程序推送到Heroku。應用程序使用NPM來獲取私人github上的存儲庫,這是在package.json規定,這樣的...因爲GitHub的主機密鑰不在容器known_hosts文件在npm install階段我可以在Heroku上使用npm私有github依賴關係

"dependencies": { 
    "my-private-dep": "github:my-org/my-repo" 
} 

構建失敗。

remote:  npm ERR! Host key verification failed. 

這是SSH的預期行爲。 Heroku是否爲此提供解決方法?例如,使用相同buildpackdokku有一個host keys plugin,它會在每次構建之前將主機密鑰注入容器,從而解決此問題。 Heroku有類似的解決方案嗎?

+0

你有沒有把這個整理出來?我正在與一個鳳凰應用程序中的相同問題戰鬥...... – skwidbreth

+0

不幸的是,我沒有。我在Heroku上獲得了保證,並且爲數字海洋服務器支付了5美元/月。真的很奇怪,沒有人能回答這個問題。這很基本。我認爲也許Heroku希望你支付他們的支持或其他東西 –

+0

我其實已經找到了一個解決方案 - Heroku並沒有使這個簡單,但我發現了一個有人爲我做的最合適的構建包 - 通過快速調整,我是能夠使它飛翔。我會在下面發表我的回答... – skwidbreth

回答

1

事實證明,有一個buildpack,使這個相對容易 -

https://github.com/debitoor/ssh-private-key-buildpack

然而,我發現,無論出於何種原因,設置SSH_HOSTS環境變量不是我正常工作 - 根據到文檔,它應該默認設置Github,然後你可以添加其他人,如果你喜歡...我實際上使用Gitlab這個特定的項目,但發現,當我設置像這樣的配置:

$ heroku config:set SSH_HOSTS="[email protected]" 

它沒有被檢測到。我結束了克隆buildpack和改變bin/compile線13

ssh_hosts=${SSH_HOSTS:-"[email protected]"} 

,只是推到了我自己的回購協議用於此項目。像魅力一樣工作。