🦙

Colima + Docker にDocker ComposeとBuildxをプラグインとして導入する

2024/08/25に公開

はじめに

Colima + Dockerは導入が簡単で便利ですが、Docker Composeを使うためには

  • スタンドアローン版のDocker Composeをインストールする
  • Docker Composeをプラグインとして導入する

の2つの方法があります。

スタンドアローン版をインストールするには、brew install docker-composeを実行しますが、deprecatedになったV1系のコマンドと同じdocker-composeコマンドを使うことになり(中身はV2系ではあるものの)、docker composeコマンドを使うことができません。

そのため今回は、プラグインとして導入する方法を紹介します。

また、docker build時にもbuildxを使うようにするため、Buildxプラグインも導入します。

環境

  • M2 Chip
  • brew install colima dockerでインストールしたcolima + Docker

Docker Composeプラグインの導入

https://docs.docker.com/compose/install/linux/#install-the-plugin-manually

に従い、Docker Composeプラグインを導入します。

DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
mkdir -p $DOCKER_CONFIG/cli-plugins
curl -SL https://github.com/docker/compose/releases/download/v2.29.2/docker-compose-darwin-aarch64 -o $DOCKER_CONFIG/cli-plugins/docker-compose

今回はM2 Chipを使っているので、アーキテクチャにdarwin-aarch64を指定しています。また、最新バージョンはReleasesから確認してください。

https://github.com/docker/compose/releases

chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose
docker compose version

バージョンが表示されれば導入完了です!🎉

Buildxプラグインの導入

Colima + Dockerだけの状態で適当なDockerfileをBuildしようとすると以下のようなWARNINGが出ると思います。

$ docker build -f Dockerfile -t test .
DEPRECATED: The legacy builder is deprecated and will be removed in a future release.
Install the buildx component to build images with BuildKit:
https://docs.docker.com/go/buildx/

brew install dockerでインストールしたDockerではbuildxが使われないため、プラグインとして導入する必要があります。

DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
curl -SL https://github.com/docker/buildx/releases/download/v0.16.2/buildx-v0.16.2.darwin-arm64 -o $DOCKER_CONFIG/cli-plugins/docker-buildx

アーキテクチャにdarwin-arm64を指定しています。また、最新バージョンはReleasesから確認してください。

https://github.com/docker/buildx/releases/

chmod +x $DOCKER_CONFIG/cli-plugins/docker-buildx
docker buildx version

バージョンが表示されればbuildxの導入は完了です。

buildxをデフォルトとして設定

このままだと、docker buildコマンドを実行するときに、毎回buildxを指定する必要があります。

docker buildコマンドを実行するときに、デフォルトでdocker buildx buildコマンドを使うように設定します。

docker buildx install

これで、docker buildコマンドを実行すると、buildxが使われるようになります!🎉

$ docker build
ERROR: "docker buildx build" requires exactly 1 argument.
See 'docker buildx build --help'.

Usage:  docker buildx build [OPTIONS] PATH | URL | -

Start a build
$ docker build -f Dockerfile -t test .
# WARNINGが表示されなければOK

おわりに

Docker ComposeとBuildxをプラグインとして導入する方法を紹介しました。

docker-composeじゃなくてdocker composeを使いたいんだ!!という方(主に自分)は参考にしてみてください🐣

Discussion