やっつけ不定記

好きなときに好きなことをちゃっちゃと書いてます

Amazon Linux 2023でDocker Compose v2してみた

少し前にAmazon Linux 2023(AL2023)がGAになりました。
https://aws.amazon.com/jp/blogs/news/amazon-linux-2023-a-cloud-optimized-linux-distribution-with-long-term-support/
既にいろんなところで触ってみた記事も出ているので、大半はそれでつかめます。

個人的な作業でDocker Compose v2が必要になったのですが、せっかくなので
AL2023でやってみようかなと試してみました。
こんなんdnfコマンド一発だろと舐めプしてかかってみたら、素のAL2023では
Docker Compose Plugin的なものがなく、ちょっとばかし面倒なことに。
Amazon Linux Extrasのようなものでもあるのかなと探してみたのですが、それもなさそう。

上記リリース記事にあった「AL2023はFedora36がベース」の旨の記述をヒントに、
こんな感じで導入してみました。

もっといいやり方があると思いますが、本日時点で実現できた手順のメモということで。
EC2環境はインスタンスタイプをt2.mediumにしてセキュリティグループを縛ったくらいで、
特に変わったことはしていません。

(1)Dockerを入れて起動する

$ sudo dnf install docker
$ sudo systemctl start docker
$ sudo docker version

(2)Docker ComposeのFedora版インストール手順を参考にパッケージを入れていく
  (dnf-plugins-coreはAL2023デフォルトで、containerd.ioは(1)で導入済みなので無視)

$ sudo dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
$ sudo dnf --releasever=36 install docker-buildx-plugin docker-compose-plugin

※releaseverオプションでFedoraのバージョンを指定しないと、デフォルトの2023.0.xxxxxxxxが使われてエラーになる。
 対処にあたっては、こちらの記事を参考にさせていただきました。
 https://dev.classmethod.jp/articles/amazon-linux-2023-ga/

(3)動作確認する

$ sudo docker compose version
Docker Compose version v2.16.0
$ vi docker-compose.yml
動くYMLファイルを作る(適当にHello WorldできるYMLを作った)
$ sudo docker compose up
$ sudo docker ps -a
CONTAINER ID   IMAGE                COMMAND    CREATED         STATUS                     PORTS     NAMES
xxxxxxxxxxxx   hello-world:latest   "/hello"   2 minutes ago   Exited (0) 2 minutes ago             xxxxxxxx