Fork MR パイプラインで docker/fistr1 ジョブの Container Registry push が失敗する

概要

外部フォークからの Merge Request パイプラインにおいて、docker/fistr1 ジョブが Container Registry への push 時に失敗します。 関連するマージリクエスト:!524 (merged)

再現手順

  1. 外部プロジェクト(fork)から upstream に対して MR を作成する
  2. CI パイプラインが実行される
  3. 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 の成功のみを検証する