CodeBuildのAmazonLinux2023でmysqlクライアントを使う

CodeBuildでmysqlコマンドを利用したかったのだが、標準では入っていないので、入れる必要がある。aws/codebuild/amazonlinux2-aarch64-standard:3.0みたいなAmazonLinux 2023のイメージを使うと入っていないので、インストールする必要があるけど、buildspec.ymlには以下のような感じで書いておけば良い。

phases:
install:
commands:
- dnf install -y mariadb105

mysqlを入れるのではなくて、mariadb105を入れておけば、mysqlコマンドが使えるようになった。

Amazon Linux 2023にDocker Composeを入れる

まずは、dnfでdockerを入れます。

$ sudo dnf -y install docker

インストールしたら、dockerのサービスを有効にします。

$ sudo systemctl enable --now docker

次に、ec2-userでdockerコマンドを利用できるようにします。

$ sudo usermod -aG docker ec2-user

一度、ログアウトして、ログインし直します。

docker composeのリリースサイトを確認して、アーキテクチャを確認して、インストールします。今回は、x86_64版をインストールします。

$ sudo mkdir -p /usr/local/lib/docker/cli-plugins
$ sudo curl -SL https://github.com/docker/compose/releases/download/v2.21.0/docker-compose-linux-x86_64 -o /usr/local/lib/docker/cli-plugins/docker-compose
$ sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose

あとは、docker composeが利用できるか確認します。

$ docker compose version

ClamAVでPermission deniedが起きる

ClamAVを実行できるようにしようかなと思い、Ubunut 22.04に入れて、試してみると

$ sudo clamdscan /opt/
/opt: File path check failure: Permission denied. ERROR

みたいな感じで、エラーになる。なぜかなと思ったら、実際の実行されるユーザーが異なる動きをするようなので、–fdpassのオプションを指定して実行する必要があるらしい。