今まで Raspberry Pi 3 Model B+ を使っていましたが、ようやく Raspberry Pi 4 Model B (4 GB RAM) を買いました。
電源が USB Type-C コネクタだったり、HDMI 出力が Type-D(HDMI Micro)だったり、ちまちまと 3 系と違うんですね。ケーブルの使いまわしができない……。
ちょうど数日前に 2 年ぶりの LTS である Ubuntu 20.04 がリリースされたニュースもありましたし、入れて遊ぼう…… と思ったものの、まだ Docker が 20.04 をサポートしていない みたいです。19.10 が出たときも Docker が追従するまでにちょっとラグがあったので、仕方ないですね。
Ubuntu 20.04 に 19.10 用の Docker を入れて動かす例もインタネットにはありますが、ちょっとお行儀よく使いたい要件があったので、20.04 自体をあきらめて 18.04 を入れました。
公式のダウンロードページが全部 20.04 に置き換わってしまったので、Raspberry Pi 向けの古いバージョンのバイナリは、cdimage.ubuntu.com
から持ってきます。
Raspberry Pi Imager
全然知りませんでしたが、Raspberry Pi Imager というめっちゃ便利なのがリリースされていました。最初の SD カードづくりがこれだけで簡単にできるみたいです。
後者のブログで書かれている通り、最新の Server の LTS と最新の Core しか選べないので、今日時点だと Ubuntu Server はすでに 18.04 は選択肢になく、20.04 しか出てきません。
If you select this option, you will be able to choose from the latest LTS (Long Term Support) Ubuntu server images, or the latest Ubuntu Core images for either armhf or arm64 architectures. Canonical updates these images with every new LTS.
How to install Ubuntu with the new Raspberry Pi Imager
よって、古いバージョンの OS を導入したいときは、結局個別にイメージのダウンロードが必要になってしまうわけですが、とはいえ、これ以外にも機能はあり、
- SD カードの FAT32 でのフォーマット
- 64 GB 以上の SD カードでも問題なく使える
- 任意のイメージの書き込み
- 古いバージョンの OS を書き込みたいときに使える
- Raspberry Pi の EEPROM のリカバリ
- Raspberry Pi がお亡くなりになったとき用
が地味にうれしい実装です。64 GB 以上の SD カードだと、Windows では FAT32 でフォーマットするために地味に面倒な手間が発生していたので、助かります。
Ubuntu 18.04 の導入
イメージを書き込んで起動すれば普通に起動してくるので、あとはノリでどうにかなりますが、公式のチュートリアルもとても親切ですね、すごい。
で、適当に気合で構成したら、/etc/netplan/99-override.yaml
あたりにファイルを作って設定を放り込んで、IP アドレスを固定します。家の Wi-Fi の SSID がステルスなので、StackExchange で投稿されている謎ハック を追加で突っ込んでいます。汚い。
network:
version: 2
ethernets:
eth0:
dhcp4: false
addresses:
- 10.96.1.239/24
wifis:
wlan0:
access-points:
"MY_STEALTH_SSID\"\n scan_ssid=1\n #":
password: MY_PASSWORD
dhcp4: false
addresses:
- 192.168.0.239/24
gateway4: 192.168.0.1
nameservers:
addresses:
- 192.168.0.1
Docker と Docker Compose の導入
Docker を入れるには、淡々とガイドに従います。途中、リポジトリを追加するときの CPU アーキテクチャは arm64
です。
Docker Compose を入れるのも、淡々とガイドに従います。arm64
用のバイナリはないので、Alternative Install Options
を参考に pip
で入れました。入れる前にパッケージがいくつか足りないので足さないとダメでした。
$ sudo apt install -y python3 python3-pip
$ sudo apt install -y libffi-dev libssl-dev
$ sudo pip3 install docker-compose
というわけで、あとは遊ぶだけです。