DockerCompose on QNAP
ContainerStation
QNAP の ContainerStation をとても便利に使っていたのですが、Deploy のたびに設定 (UIからVolume等) をしたりとか、複数の Container が協調するのがめんどいというか、DockerCompose したいよなあ、と思って VPS を借りてみたりしましてました。
ところが、DockerCompose 対応してる、ということに、最近ようやく気が付きました(最初からあった?)。
DockerCompose == APP
QNAP 用語的には、docker-compose は APP ということみたいです。
Docker 社の作っている app plugin とは別物っぽいです。
APP は二通りの作成方法があるようです。
- ライブラリ(初期設定なら https://github.com/qnap-dev/container-apps/tree/2.0) をつかう
templte/*/wizard でメニュー設定と、docker-compose.yml の項目への binding が定義できるようだ。 - 自分で設定する(作成の所のアプリケーションの作成ボタンから docker-compose.yml を編集して追加できます)
docker-compose.yml に即値で書いていく。
自分は後者を使いました。設定項目が全て手の中にあるのでバックアップ・履歴管理も楽だし。(docker-compose.qnap.yml で commit しています、詳細な設定・秘密情報は Volume に置く方針です)
注意としては、build エントリがあると失敗するので、消しておきます。なければ image を自動的にダウンロードして実行します。
image の更新
なお、概要タブの Container/APP 一覧から、編集ボタンを押すと既存の APP の yml の編集ができ、適用 すると自動的に更新されます。
tag を :latest にした場合は 適用 を実行したところで、既存の latest を更新してくれないので、image を削除する必要があります。参照されていると削除できないので、面倒です。普通に versioning しましょう。