通过 cronjob 进行 Satis 更新



我正在尝试通过cron作业更新我的私有存储库,但似乎没有任何反应。我正在使用 Satis 为我的私有包创建存储库。

我可以通过SSH登录我的帐户并运行以下命令来手动执行此操作:

php bin/satis build satis.json ./ -n

除了我必须输入一百万次密码之外,它更新了一切。我可以通过使用SSH Agent来解决这个问题,并认为这可能是我的问题......

php /home/accountname/public_html/bin/satis build /home/accountname/public_html/satis.json /home/accountname/public_html/ -n

我错过了什么吗?

更新

这是我通过电子邮件收到此错误的SSH身份验证(缩短版本(

读取供应商/包的作曲家.json (主(
更新失败 git@bitbucket.org:vendor/package.git,软件包信息来自此 存储库可能已过时(权限被拒绝(公钥((。致命:该 远程端意外挂断错误:无法获取源(

在文档中,它说使用-n来使用SSH密钥,但我正在使用它。

有什么想法吗?

更新

以为我会添加我的 satis 文件结构:

{
    "name": "Name Of My Repo",
    "homepage": "http://repodomain.co.uk",
    "repositories": [
        { "type": "vcs", "url": "git@bitbucket.org:vendor/package.git" }
    ],
    "require-all": true
} 

真的卡在这个上面,文档是废话!

你是对的,SSH身份验证是这里的问题。

当 cronjob 运行时,它必须以某种方式访问您的 Bitbucket 存储库。您选择使用使用 SSH 的"git"协议。使用 SSH 时,使用基于密钥的身份验证比使用密码要好得多 - 当涉及到 git 存储库时,大多数时候这是唯一的方法,具体取决于托管。

要么将私钥放在该 cron 服务器上以访问 Bitbucket(可能是个坏主意(,要么创建一个新的密钥对并使用它来允许访问您的存储库(更好,除非您遇到 bitbucket 帐户的一些限制,例如如果该密钥算作用户的用户太多 - 另一方面,您可以将此密钥限制为仅允许读取, 不写(。

确保用于运行 cronjob 的用户使用这些密钥,例如,您应该能够在没有任何代理的情况下手动启动脚本,并且它应该在不要求输入密码的情况下完成。私钥的正确位置是~/.ssh,公钥转到Bitbucket。之后,一切都应该在 cronjob 中完美运行。

另一种方法是使用不同的协议(如HTTPS(进行存储库访问,看看会发生什么。

相关内容

  • 没有找到相关文章

最新更新