サーバ

Docker 版 WordPress を ARM 機から x86 機に移行する

背景

なぜかこの WordPress、ずっと RasPi 4 (4GB) で動いていた。
何かしらがめんどくさくて、実家で動いていた踏み台サーバに建てたのだと思われる。
それが先日、親から RasPi の冷却用ファンから異音、それも相当大きなものがなっているとの連絡が来てので、この機会にメインサーバに移行した。

しかし、RasPi は ARM 系 CPU、メインサーバは x86 CPU であるため、わざわざ Docker で構築しているにも関わらず互換性が超低い。
この特殊な移行例を、一応書き残しておく。

環境

移行元:
Ubuntu22、Pimox7、RasPi4B (4GB)
/home/username/wordpress/docker-compose.yml とか、WordPress のデータとかがある

移行先:
Ubuntu22、ProxmoxVE8、普通の PC

手順
  1. 移行元、移行先に Samba を入れておく
    生まれも育ちも GUI なので GUI が好き
  2. mox でバックアップを取る、超重要
  3. 旧 WordPress を停止
    docker compose down
  4. データベースをエクスポート
    docker compose exec db mysqldump -u root -p'<password>' --single-transaction --databases wordpress \> db_$(date +%F).sql
  5. WordPress 本体を圧縮してエクスポート
    tar czf wp_html_$(date +%F).tar.gz html/
  6. 旧サーバから新サーバの /home/username/wp_migration に、さっきエクスポートした 2 ファイルを転送
  7. 新サーバに WordPress をインストール
    sudo add-apt-repository universe
    sudo apt install -y docker.io docker-compose-v2
  8. 新サーバの /home/username/wordpressdocker-compose.yml を配置
  9. /home/username/wordpress に WordPress 本体を解凍して配置
    cd ~/wordpress
    tar xzf ~/wp_migration/wp_html_<日付>.tar.gz
  10. コンテナ起動
    docker compose up -d
  11. データベースをリストア
    sudo docker cp ~/wp_migration/db_<日付>.sql $(sudo docker compose ps -q db):/tmp/
    sudo docker compose exec db sh -c "mysql -u root -p'<password>' wordpress < /tmp/db_<日付>.sql"
  12. アクセスして確認
    https://<ip>:<port>
結果

副産物として、WordPress が超早くなった。
翌々考えたら、もともと RasPi の CPU で、メモリも 512MB しかなかったものが、9 世代 i5 でメモリも 8GB 与えられるようになったのだから、これまでが低スペすぎた。

これまで頑張ってくれた RasPi 君に感謝。

コメント