Raspberry PiでmysqlのDockerコンテナを動かす

公開日時

RaspberryPiをRaspbian Busterにアップデートしたところ、mysqlが動かなくなってしまった。

試行錯誤したものの依存解消するのが難しそうだったので、これを機にDockerでmysqlコンテナを動かすことにした。

  • インストール
curl -sSL https://get.docker.com | sh
sudo usermod -aG docker pi

ただし、RaspberryPiは普段使っているMacとはCPUが異なるため、mysql公式イメージを動かすことができない。

RaspberryPi用のmysqlイメージとしてhypriot/rpi-mysqlが公開されているのでこちらを利用する。

バージョンは5.5のみが公開されている模様。

もともとMac用に作っていた[[docker-compose.yml]]が以下。

# docker-compose.yml
version: "3"
services:
  datastore:
    image: busybox
    volumes:
      - db_data:/var/lib/mysql
  db:
    image: mysql:5.5
    environment:
      MYSQL_ROOT_PASSWORD: pass
    volumes:
      - db_data:/var/lib/mysql
volumes:
  db_data:

MacとRaspberryPi両方の環境でアプリケーションを動かしたかったので、[[docker-compose.override.yml]]を使ってイメージを上書きすることにした。

ついでに再起動時に自動で立ち上がるように[[restart: always]]も設定。

# docker-compose.override.yml
version: '3'
services:
  db:
    image: hypriot/rpi-mysql
    restart: always
    ports:
      - "3306:3306"

これでRaspberryPi上でもmysqlコンテナが動くようになった。

参考


Related #docker

docker-credential-desktop.exe not installed or not available in PATH

rm ~/.docker/config.jsonしたら起動できた

Cloud Datastoreのローカル環境をDockerで構築する

CloudDatastoreエミュレータとgoogle-cloud-guiの環境を構築

Extension fieldsを使ってdocker-composeのコンテナ設定を共通化する

Railsコンテナ設定を共通化して、commandだけそれぞれで変えるようにした

docker-composeコマンドのエイリアスを作る

dcコマンドを置き換えた

Dockerでpt-query-digestを使う

コンテナのおかげで手軽にslowlog分析ができるようになった

mysqld: [Warning] World-writable config file '/etc/mysql/conf.d/my.cnf' is ignored.

windowsだとvolume mountすると777になるのでDockerfileを作ってcopyするようにした