Fork MR パイプラインで docker/fistr1 ジョブの Container Registry push が失敗する
概要
外部フォークからの Merge Request パイプラインにおいて、docker/fistr1 ジョブが Container Registry への push 時に失敗します。 関連するマージリクエスト:!524 (merged)
再現手順
- 外部プロジェクト(fork)から upstream に対して MR を作成する
- CI パイプラインが実行される
- docker/fistr1 ジョブが make push を実行し、registry push で 500 エラーとなる
エラー内容
failed to authorize: failed to fetch oauth token: unexpected status: 500 Internal Server Error
原因
Fork MR パイプラインでは CI_JOB_TOKEN が fork 側プロジェクトのトークンとなるため、upstream の Container Registry (registry.gitlab.com/frontistr-commons/frontistr) への push 権限がありません。GitLab Registry は権限不足時にも 500 を返すことがあります。
期待する動作
- upstream パイプライン: 従来通り make push で image を push する
- fork MR パイプライン: push をスキップし、build の成功のみを検証する