docker-composeはサーバ間の連携図面 サーバ運用ならdocker-composeでスマートに(Nextcloud phpmyadmin)

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

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″

特に通常の運用に支障はないようなので、気にしないでも良いと思われる。

コメント

タイトルとURLをコピーしました