1.はじめに
最近 docker-compose を使うことになったので、その使い方を記録。
Raspi上のDebianで作成していたNextcloudのアップグレードができない。以下のような警告が出るようになって久しい。
2024/01/07 phpmyadmin 追記
Nextcloud Hub II (23.0.0)
あなたが実行しているバージョンはもうサポートされていません。 サポートされているバージョンにすみやかにアップデートしてください。
他方で
Nextcloud 23 is the last release supporting PHP 7.3. Nextcloud 24 requires at least PHP 7.4.
つまり、PHP7.4にアップグレードされない限り、Nextcloudはアップグレードできないというわけだが、まだDebianはその気がないようだ。
しかし、dockerを使えば、最新のNextcloudが使えるはず。しかもdockerさえ機能すれば、docker上のphpも最新版で動かせるはず。しかもdocker-composeを使ったら簡単に作成できるかもしれないと思い、思い切って始めた。だめだったら思い切って削除もできるという手軽さも、docker導入の1理由だ。
2.システム要件
dockerが正常に起動すれば良い。
3.作成順序
- docker のインストール、起動及び有効化
- docler-compose のインストール
- Nextcloud および mariadb のインストール
- ymlファイル(設計図)の作成
- docker-compose の起動
- Nextcloudの管理者設定
4.docker のインストール、起動及び有効化
$ sudo pacman -S docker
$ sudo systemctl start docker
$ sudo systemctl enable docker
5.docker-composeのインストール
$ sudo pacman -S docker-compose
6.Nextcloud と mariadb のインストール
$ sudo dokcer pull nextcloud
$ sudo docker pull mariadb
$ sudo docket pull phpmyadmin
7,ymlファイルの作成
$ sudo mkdir /etc/compose/nextcloud.yml
version: '2'
volumes:
nextcloud:
db:
phpmyadmin:
services:
db:
image: mariadb:10.6
restart: always
command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW
volumes:
- db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=xxxxxxxx
- MYSQL_PASSWORD=xxxxxxxxx
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
app:
image: nextcloud
restart: always
ports:
- 8080:80
links:
- db
volumes:
- nextcloud:/var/www/html
environment:
- MYSQL_PASSWORD=xxxxxxxx
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_HOST=db
phpmyadmin:
image: phpmyadmin
depends_on:
- db
environment:
- PMA_ARBITRARY=1
- PMA_HOSTS=db
- PMA_USER=root
- PMA_PASSWORD=xxxxxxxx
ports:
- "3001:80"
https://hub.docker.com/_/nextcloud/ ( Base-version – apache ) password以外はそのまま
phpmyadmin については https://zenn.dev/peishim/articles/f7a76ae6c253e4
8.Nextcloud phpmyadmin の起動
$ sudo docker-compose -f /etc/compose/nextcloud.yml up -d
9.ブラウザでのアクセhttps://zenn.dev/peishim/articles/f7a76ae6c253e4ス
http://xxx.xxx.xxx.xxx:8080
管理者名と管理者バスワードを入力すれば、一丁出来上がり。
phpmyadmin へのアクセスには http://xxx.xxx.xxx.xxx:3001 だ
10.ちょっと改良
- 上記の sudo docker-compose -f /etc/compose/nextcloud.yml up -d コマンドを nextcloud_up というファイル名で作成、実行権限を与えておく
- cron に このコマンドを @reboot 時に起動するよう設定しておく。
11.補足
以下の警告が発生することがある。
dockerd[957]: time=”2023-09-01T05:40:43.348167115+09:00″ level=warning msg=”failed to load plugin io.containerd.snapshotter.v1.aufs” error=”modprobe aufs failed: \”modprobe: FATAL: Module aufs not found in directory /lib/modules/5.10.103-v8+\n\”: exit status 1″
特に通常の運用に支障はないようなので、気にしないでも良いと思われる。
コメント