多分令和最新版。
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
バイナリポン置きなのでローカル環境に色々いれなくていいので便利ですね。現場からは以上です。