我可以在Heroku上使用npm private github依赖项

时间:2016-08-19 22:04:48

标签: node.js heroku ssh npm buildpack

我正在尝试将Node.js应用程序推送到Heroku。该应用程序使用npm来获取私有github存储库,这些存储库在package.json中指定,就像这样......

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

npm install阶段构建失败,因为github主机密钥不在容器known_hosts文件中。

remote:        npm ERR! Host key verification failed.

这是SSH的预期行为。 Heroku是否为此提供了解决方法?例如,使用相同dokkubuildpack具有host keys plugin,它会在每次构建之前将主机密钥注入容器,从而解决此问题。 Heroku有类似的解决方案吗?

1 个答案:

答案 0 :(得分:1)

事实证明,有一个buildpack使这相对容易 -

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

然而,我发现,无论出于何种原因,设置SSH_HOSTS环境变量对我来说都不正常 - 根据文档,它应该默认设置Github,然后你可以添加其他你喜欢...我实际上是在这个特定的项目中使用Gitlab,但发现当我像这样设置配置时:

$ heroku config:set SSH_HOSTS="git@gitlab.com"

没有被发现。我最终克隆了buildpack并将bin/compile第13行更改为

ssh_hosts=${SSH_HOSTS:-"git@gitlab.com"}

并将其推送到我自己的仓库以用于此项目。工作就像一个魅力。