リモート Mac と GitLab Runner で PHP 依存取得 を安定させる 判断マトリクス です。ホーム・ブログ一覧・購入・ヘルプはログイン不要。関連:Gradle・Maven マトリクス、Git・npm・brew 跨境、Go プロキシ連鎖。

シナリオとボトルネック(跨境タイムアウト・認証・ロック一貫性)

跨境 は 往復遅延 と 中間タイムアウト で composer install が切れやすく、私服と公開源 の混在は 認証抜け で再現性を壊します。composer.lock を ローカルと CI で揃えないと 同コミットでも解決差 が出ます。以下で 取得順と Runner 設定 を固定します。

Packagist・国内ミラー・企業私服の連鎖回源:composer config 対照表

三層 の例です。URL は 社内許可リスト に合わせて置換してください。

層役割設定例
企業 GitLab 私服社内一次源composer config repositories.gitlab composer "https://gitlab.example.com/api/v4/group/ID/-/packages/composer/"
国内ミラー近接キャッシュcomposer config repositories.cnmirror composer "https://mirrors.aliyun.com/composer/"
本家 Packagist最終フォールバックcomposer config repositories.packagist composer "https://repo.packagist.org"

補足:composer config --unset repos.packagist 後に 順に登録 する運用では、トークン は COMPOSER_AUTH に閉じ、優先度と切替手順 を Wiki に残します。

GitLab CI と並列ジョブ:HTTP プロキシ・リトライ退避パラメータ一覧

同一出口 の 過剰並列 は 枯渇とレート制限 を招くため resource_group 等で抑え、HTTP_PROXY/HTTPS_PROXY 利用時は NO_PROXY に 社内 GitLab を入れます。

項目置き場所メモ
認証マスク CI 変数 → COMPOSER_AUTH短命・ログ禁止
リトライretry:+シェル指数待機二四八秒など三回が目安
タイムアウトジョブ timeout・COMPOSER_PROCESS_TIMEOUT巨大ベンダ想定で余裕

リモート Mac の shell でも 同じ変数 を launchd または before_script で注入し --no-interaction を固定します。

リモート Mac 上のキャッシュディレクトリ・COMPOSER_CACHE_DIR・CI キャッシュ鍵

COMPOSER_CACHE_DIR は ジョブ別サブディレクトリ か artifact で競合を避け、cache:key に composer.lock の ハッシュ と PHP 版 を含めます。

  • 引用①:composer validate --strict を マージ前ゲート に。
  • 引用②:--prefer-dist 既定で 揺らぎ に強くする。
  • 引用③:composer clear-cache を 定期メンテ に入れ容量とヒット率を見る。

実装チェックリスト(五ステップ)

運用へ貼る順序
  • ① 公開/社内 比率を数え 取得元表 をレビュー。
  • ② repositories.* を リポジトリコミット で共有。
  • ③ Deploy Token 等を COMPOSER_AUTH のみへ。
  • ④ COMPOSER_CACHE_DIR と cache:key 規則 を文書化。
  • ⑤ タイムアウト・認証・ハッシュ の三パターンで 切替と再試行 を手順化。

FAQ(401・レート制限・ハッシュ検証失敗)

401/403(私服)

gitlab-token の ホスト が リダイレクト後 と一致するか、スコープと期限 を確認します。

レート制限・429

並列を下げ キャッシュ命中 を上げ、Retry-After に従い バックオフ します。

ハッシュ/checksum 不一致

古いミラー や プロキシ改変 を疑い、信頼端末 で lock を揃え 取得元を一本化 します。

まとめ:取得順・認証・キャッシュ鍵・並列退避 を決めれば 跨境 PHP CI が安定します。MacPull の 常時稼働リモート Mac で Runner 土台 を固め パイプライン を載せてください。ホーム・購入・ヘルプ・ブログ一覧はログイン不要です。

PHP CI × リモート Mac

Composer 取得を安定ホストする Mac ノードを選ぶ

ヘルプセンター・購入ページ・ホームはログイン不要です。関連 CI 記事は 技術ブログ一覧 からどうぞ。

複数リージョン
SSH
柔軟な契約
サポート