homebrew で入れている docker-compose の Caveats でのメッセージが変わっていたので対応しました。

確認バージョン

  • Apple M1 Pro の MacBook Pro 14インチ 2021
  • macOS Sonoma 14.4
  • docker 25.0.4
  • docker-compose 2.25.0
  • docker-buildx 0.13.1

実際に対応したのは今月上旬なので、 もうちょっと前のバージョンから変わってそうです。

Caveats

以下のメッセージに変わっていました。

==> Caveats
==> docker-compose
Compose is a Docker plugin. For Docker to find the plugin, add "cliPluginsExtraDirs" to ~/.docker/config.json:
  "cliPluginsExtraDirs": [
      "/opt/homebrew/lib/docker/cli-plugins"
  ]

履歴を確認したところ、 https://github.com/Homebrew/homebrew-core/commit/df801e24f5e537b53f287c0831fbd56591d8f753 で変わっていて、古いメッセージは以下の内容でした。

Compose is now a Docker plugin. For Docker to find this plugin, symlink it:
  mkdir -p ~/.docker/cli-plugins
  ln -sfn #{opt_bin}/docker-compose ~/.docker/cli-plugins/docker-compose

書き換え

直接書き換えても良いけれど、 jq を使って、 以下のように編集してみました。 Homebrew のインストール先によって /opt/homebrew の部分は変わるので、 Intel Mac などの他の環境では変わりそうです。

jq '.["cliPluginsExtraDirs"] |= (.+["/opt/homebrew/lib/docker/cli-plugins"] | unique)' ~/.docker/config.json > tmp.json
cat tmp.json
mv tmp.json ~/.docker/config.json
rm ~/.docker/cli-plugins/docker-compose
rmdir ~/.docker/cli-plugins

使ってなかったのですが docker-buildx も入っていたので、 rm ~/.docker/cli-plugins/docker-buildx も必要でした。

書き換え後の内容は以下になりました。

{
  "auths": {},
  "currentContext": "colima",
  "cliPluginsExtraDirs": [
    "/opt/homebrew/lib/docker/cli-plugins"
  ]
}

まとめ

末尾の , の問題が面倒なので jq を使ったり、複数回実行しても大丈夫なように jq の式を工夫したりしましたが、 普通は直接 config.json を編集してしまえばいいと思います。

docker の cli-plugins をインストールする予定はあまりないですが、 個別に symlink を追加する必要がなくなって、 何か追加や削除したくなったときには楽になってそうです。

Disqus Comments

Kazuhiro NISHIYAMA

Ruby のコミッターとかやってます。 フルスタックエンジニア(って何?)かもしれません。 About znzに主なアカウントをまとめました。

znz znz


Published