パパ教員の戯れ言日記

このブログの発信は個人としての発信です。こんな教員もいるのかと思っていただければ幸いです。

Mastodonのインスタンスを更新しようと思ったら、予想外の部分でつまずいて2週間…

もう流行ってないドン

Mastodon、流行ってたのですが、もう流行ってないですね。私の観測内では。pawooは相変わらず強いですが、どちらかというとpixivが主体で、過去の絵を流す補助的なツールとして使っている人が多いようです。

自分で作ったインスタンスを2週間以上落としてしまった件

私も、自宅に置いてあるサーバーでインスタンスを立ち上げてみた訳なのですが。

justsize.hatenablog.com

バージョンアップの過程でエラーになってしまう…。

ここでもう手詰まり。素人なのでもうダメだーとなっていたのです…。

もう一度1からやり直してもダメ

 新しい場所に移動して、もう一度 git cloneからやり直します。
自宅鯖のOSはCentOS Linux 7です。そんなに古くは無いはず。
途中、dockerのバージョンが古いというエラーが出たのですが、yumから普通に入れられるdockerはこれが最新版。仕方ないので、Community Editionを導入します。CentOSならyumで入れられるようにyumレポジトリが提供されている。ありがとう。

docs.docker.com

問題なくビルドが通り、まっさらな状態でいざ docker-compose up -d を実行すると…。

f:id:justsize:20170807060034j:plain

ちくしょう。まっさらな状態でもダメなのか…? えー。

リリースノートを熟読、意外なところでつまずいていた

v1.4.1のリリースノートに解決の糸口がありました。

Docker-only:

  • Processes inside Docker no longer run as root. Existing installations will require you to change directory ownership of the uploads volume to a different UID/GID: something like sudo chown -R 991:991 public/system (the default UID/GID of the new in-Docker user is 991/991)

 

ほほう。chown -R 991:991とな。

ここかー!

なお、この操作はもうやっております。私が「あっ…」と思ったのは、UIDとGIDの991です。

自宅鯖で991を使っているヤツがいる。誰だ。

$ getent passwd |grep 991
gnome-initial-setup:x:993:991::/run/gnome-initial-setup/:/sbin/nologin
dovenull:x:991:989:Dovecot's unauthorized user:/usr/libexec/dovecot:/sbin/nologin

 

おまえらか。

と言うわけで、私の自宅サーバー環境では、UID991をDovecot、GID991をgnomeが横取りしていたようです。ここでmastodonがUIDとGIDを決め打ちでユーザーを作ろうとするとエラーとなり、例のエラーを吐いていたようです。分かるかー!

 修正、そして復活へ

と言うわけで、 vi Dockerfileをして、UIDとGIDを変更。イライラしていたので、両方とも931。クサイにしてやった。

素の状態で立ち上がることを確認し、DBなどのユーザーファイルを戻し、細々と整えると…。

復旧しました…。

貴重な週末の朝活はこうやってつぶれていきますが、これまたトラブルを修正するのも楽しいのはどういうことなんでしょう。アレか、Mなのか。自分。