多分令和最新版。
linuxでdocker composeを使いたい場合、macOSやwindowsのDocker for xxx系とは違い、docker composeはバンドルされてないので、自分でインストールする必要があった。
特にラズパイではdocker-compose時代(Pythonスクリプト)の場合はpipでインストールする必要があった。
我々はdockerでローカルのことを考えずに動かしたいのにPython3関係の構築をしないといけないのは面倒....。
現代ではdocker composeはgolangで書き直されており、これを使う場合はpip installが不必要。
さらにARMバイナリ用のdocker composeはGitHub Releaseで配布されているので、落としてくれば使えるという極めて親切な設計になっている。
今回はすでにdockerはインストールされているものとして、docker composeのインストールを見てみる。
インストール方法
基本はcomposeのREADMEに書いてあるとおり。
自分だけで使う場合は、$HOME/.docker/cli-pluginsに、全ユーザーで使いたい場合は/usr/local/lib/docker/cli-pluginsなどにdocker-composeの名前でバイナリをポン置きすれば使えるようになる。
バイナリはリリースから持ってくれば良い。
気をつける点として、uname -mすると微妙にarmv7lとcomposeで打たれているアーキテクチャ名(armv7)と異なる。ワンライナーの中でuname -mしていい感じに取得しようとする場合は注意。
$ uname -m armv7l
自宅のラズパイ4で、全ユーザーにインストールしたい場合は次のような感じでインストールする。
とりあえずrootになり
$ sudo -i
後は素朴に
# mkdir -p /usr/local/libexec/docker/cli-plugins # cd /usr/local/libexec/docker/cli-plugins # wget https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-linux-armv7 -O docker-compose # chmod +x docker-compose
こうするとdocker composeが使えるようになる。
$ docker compose
Usage: docker compose [OPTIONS] COMMAND
Docker Compose
Options:
--ansi string Control when to print ANSI control characters ("never"|"always"|"auto") (default "auto")
--compatibility Run compose in backward compatibility mode
--env-file string Specify an alternate environment file.
-f, --file stringArray Compose configuration files
--profile stringArray Specify a profile to enable
--project-directory string Specify an alternate working directory
(default: the path of the Compose file)
-p, --project-name string Project name
Commands:
build Build or rebuild services
convert Converts the compose file to platform's canonical format
cp Copy files/folders between a service container and the local filesystem
バイナリポン置きなのでローカル環境に色々いれなくていいので便利ですね。現場からは以上です。