Raspberry Pi 4 with Docker で快適な Botter ライフを送りたい 環境構築編
こんにちは、でめきん(@demekinnomimi)です。
VPSを借りて何かを作って気が済んだら解約を繰り返していましたが、窓際に転がっている Raspberry Pi 4 に Docker 入れてしまえばすべて解決することに気が付いたので、これから環境構築を進めていきます。現在、2021/11/23 10:13です。
以下、構築メモ。
1. Raspberry Pi OS 32bit がインストールされた Raspberry Pi 4 を用意します。
2. とりあえずソフトウェアを最新化します。Debian系を触るのは久しぶりすぎてコマンドが分からないので、upgrade している間に確認しておきます。
pi@raspberrypi:~ $ sudo apt update # パッケージリスト更新
pi@raspberrypi:~ $ sudo apt upgrade # パッケージ更新
3. なんとなくOSバージョンを確認します。buster ではなく bullseye というのが最新のディストリビューションらしいですが、面倒なのでこのままいきます。
pi@raspberrypi:~ $ lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 10 (buster)
Release: 10
Codename: buster
4. https://docs.docker.com/engine/install/debian/ でインストール手順を確認し、手順通りにコマンドを打っていきます。まずDry runから実行して、エラーがでないか確認します。
pi@raspberrypi:~ $ curl -fsSL https://get.docker.com -o get-docker.sh
pi@raspberrypi:~ $ DRY_RUN=1 sh ./get-docker.sh
5. エラーはでなかったので、本実行します。本実行したらエラーがでるので、いったん再起動して、apt-get upgrade でインストール途中の docker-ce を最後までインストールします。get-docker.sh を見ると、docker-ce-rootless-extras のインストールができていなかったため、これもインストールします。これがあると一般ユーザで Docker が起動できるらしいです。最後に docker service を再起動して、docker のインストールは完了です。
pi@raspberrypi:~ $ curl -fsSL https://get.docker.com -o get-docker.sh
pi@raspberrypi:~ $ sudo sh get-docker.sh
以下略)
# エラー発生!!
pi@raspberrypi:~ $ sudo apt-get upgrade
pi@raspberrypi:~ $ docker -v
Docker version 20.10.11, build dea9396
pi@raspberrypi:~ $ sudo apt install docker-ce-rootless-extras # 本当はget-docker.shでインストールされるっぽい
pi@raspberrypi:~ $ sudo systemctl restart docker
6. https://hub.docker.com/_/python から buster で使えそうな Tag を探します。3.10.0-buster がそれっぽいのでこれを使います。一般ユーザでやるのは面倒なので root で docker を立てます。
pi@raspberrypi:~ $ sudo docker pull python:3.10.0-buster
pi@raspberrypi:~ $ sudo docker run -it python:3.10.0-buster /bin/bash # コンテナ起動してbashでログイン
root@7e7406cc1fe8:/# python3 --version
Python 3.10.0
7. rootユーザでプログラムを実行すると意図しないファイル操作が発生したときに怖いので、devユーザを作ります。sudo権限をつけてあげます。
root@7e7406cc1fe8:/# adduser dev
root@7e7406cc1fe8:/# gpasswd -a dev sudo
8. 以上で完成。ただいま 11:07。環境構築めんどくさい!!
9. 環境構築足りてなかったので、パッケージリスト更新した後、sudo と vim をインストールして。 dev が所属している sudoグループに最強sudo権限をつけます。
root@7e7406cc1fe8:/# apt update
root@7e7406cc1fe8:/# apt install sudo
root@7e7406cc1fe8:/# apt install vim
root@7e7406cc1fe8:/# visudo
略)
# Allow members of group sudo to execute any command
%sudo ALL = NOPASSWD: ALL
略)
続き