新しいdocker-compose-pluginを使ってみる

# TL;DR

これからのdocker compose (v2)のインストールは，以下でおk

```bash
$ sudo apt install docker-compose-plugin
```

# ほんぺ

Raspberry Pi 3 Model B 上で動くUbuntu Server 20.04.4 LTSで，docker, docker-composeを動かしたいと思っていました

docker自体は簡単にインストールすることができます

https://docs.docker.com/engine/install/ubuntu/#install-using-the-convenience-script

```bash
$ cd
$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh
```

# docker-composeのインストールがめんどくさい

とりあえず脳死で

```bash
$ sudo apt install docker-compose
$ docker-compose --version
docker-compose version 1.25.0
```

1.25.0！？あかんわ古すぎ
これじゃ`Version in "./docker-compose.yml" is unsupported.`って言われます．最近のcompose.ymlが使えません

linuxにおける公式のインストール方法は，↓にあります

https://docs.docker.com/compose/install/#install-compose-on-linux-systems

```bash
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
$ udo chmod +x /usr/local/bin/docker-compose
```

1つ目のコマンドで https://github.com/docker/compose/releases/tag/1.29.2 にバイナリを取りにいくわけですが，Raspberry Piのアーキテクチャであるarm64用は用意されていません．

よって，ラズパイではAlternative install optionsに従ってインストールすることになります．

https://docs.docker.com/compose/install/#alternative-install-options

```bash
$ pip3 install docker-compose
```

pip3によるインストールが案内されます．
しかし，私は宗教上の理由からPythonを使うことはできません．

# V2に乗り換えたっていいじゃんね

今まで紹介してきたのはV1のインストールでした．

そもそもdocker-compose自体がpythonで書かれており，pip3でインストールしろとか言われても仕方ないのかという感じ．
最近知ったのですが，どうやら~~大好きな~~goで書き直されたv2があるらしい．
docker-compose v1でdeprecatedになっていたオプションが使えなくなるだけで，よっぽどややこしいことをしなければ問題なく使えそうだったので，v2を使うことにしました．

...

どうやってインストールするのかな〜

https://docs.docker.com/compose/cli-command/#install-on-linux

![スクリーンショット 2022-03-19 2.53.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83914/3b001275-7f2b-f134-e6a6-11a963212046.png)

*なんかだるそう*

- URLの中にx86_64ってべた書きされてる
- いっぱいコマンド打たなきゃダメ
- ホームディレクトリにバイナリ置かれるっぽい
- アプデとかだるそう

ちょっと嫌になりました

# テキトーに眺めてたら見つけた

なんとなく `apt search docker` 見てたら，こんなものを見つけました

```bash
docker-compose-plugin/focal,now 2.3.3~ubuntu-focal arm64
  Docker Compose (V2) plugin for the Docker CLI.
```

```bash
$ apt info docker-compose-plugin
Package: docker-compose-plugin
Version: 2.3.3~ubuntu-focal
Priority: optional
Section: admin
Source: docker-ce (5:20.10.13~3-0~ubuntu-focal)
Maintainer: Docker <support@docker.com>
Installed-Size: 25.4 MB
Enhances: docker-ce-cli
Homepage: https://github.com/docker/compose
Download-Size: 5,644 kB
APT-Manual-Installed: yes
APT-Sources: https://download.docker.com/linux/ubuntu focal/stable arm64 Packages
Description: Docker Compose (V2) plugin for the Docker CLI.
 .
 This plugin provides the 'docker compose' subcommand.
 .
 The binary can also be run standalone as a direct replacement for
 Docker Compose V1 ('docker-compose').
```

一応公式っぽいけど，ググっても情報がない
![スクリーンショット 2022-03-19 3.00.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83914/0383fc8c-4021-86c7-e6fc-67af032f992e.png)

もうちょっと調べたら，リリースノートが引っかかりました

https://docs.docker.com/engine/release-notes/#201013

![スクリーンショット 2022-03-19 3.02.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83914/76ad2e64-36c2-ca68-543d-75f20bf87a9c.png)

docker engineのリリースと一緒に，docker compose v2の.deb, .rpmパッケージもリリースしたよとのこと．
3/10 めっちゃ最近やん

安心してインストールしました．

```bash
$ sudo apt install docker-compose-plugin
```

# 使えんの？

あくまで私が普段動かしてるものしか試してないですが，動きました
私はupとstopとrmしかしないビギナーユーザなので，粗を見つけることはできませんでした．
中身は普通のdocker compose v2なんでしょうね．

# まとめ

- aptからdocker compose v2をインストールできて嬉しい
  - ちゃんとバージョンも新しい
- インストール方法が簡単になって，環境構築コストが下がった
- aptでバージョン管理ができるので，環境管理コストが下がった

```bash
$ sudo apt install docker-compose-plugin
```

以上