我可以在 Heroku 上使用 npm private github 依赖项吗
Can I use npm private github dependencies on Heroku
我正在尝试将 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 是否为此提供了解决方法?例如,dokku, which uses the same buildpack has a host keys plugin 将在每次构建之前将主机密钥注入容器,从而解决了此问题。 Heroku 是否有类似的解决方案?
事实证明,有一个 buildpack 可以使这个相对容易 -
https://github.com/debitoor/ssh-private-key-buildpack
但是,我发现,无论出于何种原因,设置 SSH_HOSTS
环境变量对我来说都无法正常工作 - 根据文档,默认情况下应该设置 Github,并且然后你可以根据需要添加其他人......我实际上正在为这个特定项目使用Gitlab,但发现当我这样设置配置时:
$ heroku config:set SSH_HOSTS="git@gitlab.com"
未检测到。我最终分叉了构建包并将 bin/compile
第 13 行更改为
ssh_hosts=${SSH_HOSTS:-"git@gitlab.com"}
然后将其推送到我自己的存储库以用于该项目。工作得很好。
我正在尝试将 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 是否为此提供了解决方法?例如,dokku, which uses the same buildpack has a host keys plugin 将在每次构建之前将主机密钥注入容器,从而解决了此问题。 Heroku 是否有类似的解决方案?
事实证明,有一个 buildpack 可以使这个相对容易 -
https://github.com/debitoor/ssh-private-key-buildpack
但是,我发现,无论出于何种原因,设置 SSH_HOSTS
环境变量对我来说都无法正常工作 - 根据文档,默认情况下应该设置 Github,并且然后你可以根据需要添加其他人......我实际上正在为这个特定项目使用Gitlab,但发现当我这样设置配置时:
$ heroku config:set SSH_HOSTS="git@gitlab.com"
未检测到。我最终分叉了构建包并将 bin/compile
第 13 行更改为
ssh_hosts=${SSH_HOSTS:-"git@gitlab.com"}
然后将其推送到我自己的存储库以用于该项目。工作得很好。