Pipelines の問題のトラブルシューティング

ユーザーが遭遇する問題のリストと、考えられる解決策をまとめています。アトラシアン コミュニティを利用して、独自のパイプラインのビルドに関する質問と回答を見つけることもお勧めします。Bitbucket の機能が原因で問題が生じている場合は、技術サポートにお問い合わせください。ユーザー独自のスクリプトとツールの問題はサポートの対象外となることにご留意ください。

なお、以下の説明もご覧ください:

インターフェイスが意図したとおりに表示されない

一部のブラウザ拡張機能 / アドオンはインターフェイスに影響を与える場合があります。トラブルシューティングの手順として、すべてのブラウザ拡張機能を一時的に無効化し、再度アクションを実行してみてください。

無効な bitbucket-pipelines.yml

  • YAML はタブではなくスペースのみでインデントされている必要があります 

  • ステップのスクリプトでは現在、複数行の文字列はサポートされません。コマンドの一覧を提示してください

  • bitbucket-pipelines.yml をオンラインの YAML リンターで検証してみてください

  • bitbucket-pipelines.yml の構成方法をご確認ください

スクリプトが動作しておらず、理由が不明な場合

ビルド時間を消費するのを避けるため、次の手順を実行することをおすすめします。

  1. 小さな変更を加える

  2. commit

  3. パイプラインが失敗する箇所を確認する

  4. 繰り返す

Docker を使用してローカルでパイプラインをデバッグできます。つまり、アトラシアンが使用しているのと同じ docker コンテナを実行し、スクリプトで各コマンドをインタラクティブに実行して、問題の根本原因を見つけることができます。

bitbucket-pipelines.yml をコミットしたが実行中のビルドを確認できない

bitbucket-pipelines.yml をコミットおよびプッシュしたが、ビルドについての情報を確認できない場合、次の内容をご参照ください。

  • Pipelines が有効化されているかどうかを確認します。詳細については、Bitbucket Pipelines の利用を開始するをご参照ください。

  • Pipelines が有効化されていて、bitbucket-pipelines.yml がリポジトリのルートにある場合、変更のプッシュを試します。ビルドは、Pipelines が有効化されたあとの各コミットでトリガーされます。

  • ブラウザを更新してみてください。

ブランチがビルドされない

ブランチのルートに bitbucket-pipelines.yml ファイルが存在することを確認します。ブランチをビルドするには、default またはブランチ固有のパイプライン構成を指定する必要があります。詳細は「bitbucket-pipelines.yml を設定する」をご覧ください。

複数のブランチでプッシュを実行したが実行中のビルドを確認できない

Pipelines では、1 度のプッシュで最大 5 つのブランチが許可されます。この制限内かどうかをご確認ください。 

プッシュでのブランチ数の制限は、ビルド分の意図せぬ利用を防ぐために行われています。

パイプが動作しない

使用しているパイプの readme を必ず確認します。これはエディターおよびパイプ ページからリンクされています。パイプの使用とサポート窓口についての情報は開発者に応じて異なるため、readme にはそれらのより詳しい情報が記載されています。

パイプラインのビルドがトリガーされない

Webhook ペイロードは 256 KB に制限されています。Webhook は、ペイロードが大きすぎると、密かにトリガーに失敗することがあります。

Docker push の失敗 — タグは存在しません

Issue

Docker プッシュコマンド (docker push) が、tag does not exist というエラーになり失敗します。次に例を示します。

1 2 3 4 docker push ${IMAGE_NAME} Using default tag: latest The push refers to repository [<repository>] tag does not exist: <repository>:latest

原因

2022 年 6 月、Bitbucket Pipelines は Docker CLI バージョン 20 にアップグレードされました。Docker CLI バージョン 20 より前のバージョンでは、タグが指定されていない場合、docker push コマンドは利用可能なすべてのイメージタグをプッシュしていました。Docker CLI は、バージョン 20 において、docker push コマンドを更新して、タグが指定されていない場合に latest のタグのプッシュを試みます。latestのタグが存在しない場合、コマンドは失敗します。

ソリューション

この問題を解決するには、パイプラインの docker push コマンドを次のいずれかに更新します。

  • 利用可能なすべてのタグをプッシュするには、docker push コマンドに --all-tags (または -a) オプションを追加します。 次に例を示します。

    1 docker push --all-tags IMAGE_NAME

    または

    1 docker push -a IMAGE_NAME
  • 次のように、プッシュするタグを指定します。

    1 docker push IMAGE_NAME:TAG
  • 古いバージョンの Docker CLI をイメージにインストールします。次に例を示します。

    1 2 3 4 5 6 7 8 9 10 11 12 pipelines: default: - step: services: - docker script: - curl -s -O https://download.docker.com/linux/static/stable/x86_64/docker-19.03.15.tgz - tar --extract --file=docker-19.03.15.tgz - ls -al ./docker - export PATH=./docker:$PATH - which docker - docker version

その他のヘルプ