2

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 認証です (短縮版)

ベンダー/パッケージ (マスター) の composer.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
} 

本当にこれに固執しています、ドキュメントはがらくたです!

4

1 に答える 1

3

ここで問題になるのは SSH 認証であることは間違いありません。

cronjob の実行中は、何らかの方法で Bitbucket リポジトリにアクセスする必要があります。SSH を使用する「git」プロトコルを使用することを選択しました。SSH を使用する場合、パスワードを使用するよりもキーベースの認証を使用する方がはるかに優れています。また、git リポジトリに関しては、ホスティングに応じてほとんどの場合、それが唯一の方法です。

秘密鍵をその cron サーバーに置いて Bitbucket にアクセスする (悪い考えかもしれません) か、新しい鍵ペアを作成してそれを使用してリポジトリへのアクセスを許可します (その方が良いです。そのキーがユーザーとしてカウントされる場合、bitbucket アカウントが多すぎるのと同じように、このキーを書き込みではなく読み取りのみに制限することができます)。

cronjob の実行に使用されるユーザーがこれらのキーを使用していることを確認してください。たとえば、スクリプトをエージェントなしで手動で開始でき、パスワードを要求することなく終了する必要があります。秘密鍵の正しい場所は です~/.ssh。公開鍵は Bitbucket に送られます。その後、cronjob ですべてが完全に実行されるはずです。

もう 1 つの方法は、リポジトリへのアクセスに別のプロトコル (HTTPS など) を使用して、何が起こるかを確認することです。

于 2013-10-09T18:35:40.843 に答える