DockerでインストールしているNextcloudのバージョンを上げる
ミニPC「Beelink Mini S12 Pro」にUbuntu Linuxをインストールし、Nextcloudサーバとして使っている。
NextcloudはDockerでインストールしていて、とても簡単にプライベートクラウドストレージ環境を構築することができた。
それから1週間以上運用しているが、さすがにこのくらいの期間で問題は起きてない。
メンテナンスを実施する上で出会ったのが、Nextcloudのバージョンアップ対応だった。
インストール時点では26系だったのが、27系にあがっていて、これをどうやってアップデートしたらいいのかが最初はわからず。
どうも管理画面からできそうなんだけど、Dockerで構築していたからか、なんだかうまくいかず。
これはもう、Dockerのコンテナを作り直すのがいいのかと思ってやってみることにした。データはデータボリュームに書き出しているから、Nextcloudのコンテナだけ最新化してやればいいはずだ。
Nextcloud公式のDocker Hubを見ていると、latestは27系になっていたから、イメージも新しいものが提供されているらしいし、これを使うとよいのだろう。
方針が決まったところで、まずは、Dockerで起動しているコンテナを止める。Docker composeで構築しているから、docker composeで止める。なお、このあとの作業も考えて、docker-compose.yamlを書いているディレクトリまで移動してから作業した。
docker compose stop
これでコンテナは止まるから、次はDockerイメージを最新化してやろう。
latestバージョンを使っているから、imageをpullしてやればよい。
docker image pull nextcloud
これでDockerイメージがバージョン27系のものになった。
あとはこのDockerイメージを使って再度コンテナを構築してやる。
docker compose up -d
これでNextcloudは最新バージョンになった。
なお、こうしてNextcloudを最新化してやると、管理画面でDBのIndexがついてないものがある?というようなエラーが出るようになった。スクリーンショット取っておけばよかったな・・・
メンテナンスするためのコマンドは画面に出ていたから、それを実行してやることにする。ただし、Dockerコンテナ上の該当コードを実行してやる必要があるから、そこはちょっと工夫がいる。
docker exec --user www-data nextcloud_app_1 php occ db:add-missing-indices
というふうに。nextcloud_app_1 のところは自分で作っているコンテナの名前に合わせて変更すればよいだろう。
これで何やらスクリプトが走ってDBをメンテナンスしてくれる。
管理画面を開き直してみると、先程のエラーは消えていた。
これでひとまずNextcloudのバージョンアップは完了のようだ。
Dockerじゃなくて生でインストールしていたら管理画面でポチポチやればバージョンアップできるのかもしれないが、それが使えなかったから、Dockerコンテナを構築し直すことでバージョンアップに対応した。
データはデータボリュームに書き出しているのだから、コンテナだけ新しくしてやればいいというのがわかると作業はスムーズだった。
引き続き、快適なNextcloudライフを送るとしよう。