更新とロールバック
MediaTree にはアプリパッケージ更新と完全 Docker イメージ更新の 2 つの経路があります。両者は同じバージョン基準を共有しますが、対象となる変更の種類が異なります。
アプリパッケージ更新
多くの機能更新はアプリパッケージ更新です。Settings は GitHub Release から mediatree-app-<version>.tar.gz をダウンロードし、./data/releases に展開して、再起動後に有効化します。
アプリパッケージ更新:
- Docker socket は不要です。
- データボリューム内に保存されます。
- 再起動成功後、現在のパッケージと 1 つ前のロールバック用パッケージを保持します。
- Settings からロールバックできます。
完全イメージ更新
実行環境が変わる場合は完全 Docker イメージ更新が必要です。
- Dockerfile、システムパッケージ、Python バージョン、依存レイヤーの変更。
- ffmpeg、フォント、実行時バイナリの変更。
- コンテナユーザー、権限、entrypoint、起動処理の変更。
- アプリパッケージ差し替えだけでは安全に配布できない変更。
ホスト上で実行します。
bash
docker compose pull
docker compose up -dSettings から完全イメージ更新を実行したい場合は Docker socket をマウントし、Docker CLI を含むイメージを使用します。
yaml
volumes:
- /var/run/docker.sock:/var/run/docker.sockこれはコンテナにホスト Docker の制御権を与えます。判断に迷う場合はマウントしないでください。
新規インストール
メンテナーがアプリパッケージ更新を公開する際は、zasenjc/mediatree:latest もローカルで更新します。そのため latest を使う新規インストールは最新のアプリケーション基準から開始します。
ロールバック
アプリパッケージ更新は 1 つ前のアプリパッケージ、または内蔵イメージ版へロールバックできます。完全イメージ更新のロールバックは、ホスト側で Docker またはイメージタグを使って管理します。
