Lesstep
Bitbucket Cloud・Pipelines・2026年10月29日に確認

Bitbucket Pipelines:「command not found」

ステップのログに aws: command not found のような行が出て、そのコマンドでステップが失敗します。シェルが $PATH のディレクトリを1つずつ見て、aws というプログラムを1つも見つけられなかったということです。Atlassian の記事(Pipelines build failed with "Command not found")は原因を2つ挙げていて、ステップの動き方からもう2つ出てきます。Alpine のようにシェルが bash でなく sh のイメージでは、行は not found になります。

1. PATH という名前の変数

ワークスペース・リポジトリ・デプロイメントの変数に PATH という名前のものがあると、ビルドの $PATH が置き換わり、シェルがコマンドを見つけられなくなります。たいていは全部です。変数の名前を、何に使うかが分かるもの(REMOTE_PATH・DEPLOY_PATH など)に変え、スクリプトでもその名前を使います。Atlassian の記事は、変数のページでこの名前に警告を出す要望として BCLOUD-20162 を挙げています。

2. 道具がイメージに無い

Bitbucket の機械と Linux Docker のランナーでは、ステップは Docker のコンテナの中で動き、そこにあるのはイメージに入っているプログラムだけです。bitbucket-pipelines.yml に image が無ければ、Bitbucket は atlassian/default-image:latest を使います。Atlassian はその5つの版を挙げていて(Use Docker images as build environments)、atlassian/default-image:5 は Ubuntu 24.04 に Git・Node.js 22・Python 3.12・Docker CLI です。slim や Alpine のイメージは、もっと多くを省いています。道具の入ったイメージを選ぶか、スクリプトで入れます:

pipelines:
  default:
    - step:
        image: ubuntu:24.04
        script:
          - apt-get update
          - apt-get install -y jq
          - jq --version

Alpine なら apk add --no-cache jq です。Linux シェル・macOS・Windows のランナーにはコンテナが無く、ステップはランナーの機械の上で直接動くので、道具はその機械に入れます。

3. 別のステップで入れた

Atlassian の Step options から:ステップはそれぞれ別の Docker のコンテナで始まります。1つ目のステップで入れた道具は、2つ目にはありません。使うステップで入れるか、要るステップ全部で、道具の入ったイメージを使います。

4. PATH が見ない所に入った

何かを変える前に確かめる

失敗するコマンドのすぐ前に次の行を入れて、もう一度動かします:

script:
  - echo "$PATH"
  - command -v aws || echo "no aws"
  - aws --version

$PATH が短いか変なら原因1。ふつうの $PATH で no aws なら、2・3・4 のどれかです。

IntelliJ IDEA で失敗したコマンドを見る

Pipeline Inbox for Bitbucket Pipelines は、Lesstep が作っている JetBrains IDE(2024.1 以降)のプラグインです。Bitbucket Cloud の全部のリポジトリのパイプラインを IDE のツールウィンドウに並べ、失敗したパイプラインでは、ステップが失敗したコマンドとその最後の数行を見せるので、ログを開かなくても「command not found」が目に入ります。プロジェクトに bitbucket-pipelines.yml があれば、エディタで開きます。PATH の変数の名前を変えただけなら、push する新しいコミットがありません。Pro なら Run again で、同じコミットを IDE からもう一度ビルドできます。一覧・ステップ・ログは無料。実行・やり直し・停止は Pro(月 US$1.50・30日の無料試用つき)。

JetBrains Marketplace で入れる

Atlassian・Bitbucket・Bitbucket Pipelines は Atlassian の商標、Docker は Docker, Inc. の商標、Ubuntu は Canonical Ltd. の登録商標、Node.js は OpenJS Foundation の商標、Python は Python Software Foundation の登録商標、IntelliJ IDEA は JetBrains s.r.o. の商標です。このページはそのいずれとも提携しておらず、承認も受けていません。

ほかに:「unexpected system error」 · キャッシュが効かない · push したのに Pipelines が動かない · 「Exceeded build time limit of 120 minutes」 · 「Container 'Build' exceeded memory limit.」 · 「Container 'docker' exceeded memory limit.」 · サブモジュールを取ってこない · 「We couldn't clone the repository」 · 「No online runner available」 · 「No space left on device」 · 「Step exceeded processing limits」 · 次のステップにアーティファクトが無い · 前は通ったビルドが今は落ちる · Build setup に時間がかかる · ビルド時間を使い切った · 「Permission denied to update branch」 · 「You have reached your pull rate limit」(Docker Hub) · 「There is an error in your bitbucket-pipelines.yml」 · 「This pipeline was paused」(デプロイ) · IntelliJ IDEA の Bitbucket Pipelines 用プラグインの比較 · English