Container Station 3 のカスタムアプリテンプレートを設定し、デプロイする方法
Container Station のアプリテンプレートにより、事前に設定したコンテナを QNAP 環境にデプロイできます。デフォルトでは、Container Station は QNAP が検証したテンプレートの一覧を提供しますが、ご自身のニーズに合うアプリテンプレートを追加できます。そのようなカスタムアプリテンプレートは、QNAP デバイスあるいは外部 Web サーバーに直接ホストできます。
このチュートリアルでは、カスタムアプリテンプレートを QNAP デバイスにホストする2つの方法と、その カスタムアプリテンプレートにアクセスするための Container station の設定方法について解説します。
- カスタムアプリテンプレートファイルを作成する
- NGINX コンテナにカスタムアプリテンプレートをホストする
- QNAP Web サーバーにカスタムアプリテンプレートをホストする
- Container Station にカスタムアプリテンプレートを追加する
- カスタムアプリテンプレートをデプロイする
カスタムアプリテンプレートファイルを作成する
最初の手順は、カスタムアプリテンプレートファイルの作成です。デフォルトでは、Container Station はQNAP デバイスでの正しい動作が検証されたコンテナの一覧を提供します。QNAP が検証したテンプレートはこちらからダウンロードして変更でき、ご自身で新しいファイルを作成することもできます。
テンプレートファイルはお好きなテキストエディターで変更できます。
アプリテンプレートの形式
アプリテンプレートの定義は、JSON で書かれています。正しいテンプレートはアレイと1つまたは複数のコンテナテンプレート要素で構成されています。各コンテナテンプレート要素は、必須またはオプションのデータフィールドを含む JSON オブジェクトです。このフィールドは次の例のようになっています。
{
“templates”: [
{
// template1
},
{
// template2
},
...
]
}
JSONエレメントフォーマット
タイプ
|
属性 |
説明 |
|---|---|
|
説明 |
このテンプレートに対するコンテナのタイプ (Docker または LXD) |
|
重要 |
必須 |
|
形式 |
整数 |
|
可能な値 |
|
タイトル
|
属性 |
説明 |
|---|---|
|
説明 |
テンプレートのタイトル |
|
重要 |
必須 |
|
形式 |
文字列 |
|
可能な値 |
任意の文字列 |
サブタイトル
|
属性 |
説明 |
|---|---|
|
説明 |
テンプレートバージョンの情報 |
|
重要 |
必須 |
|
形式 |
文字列 |
|
可能な値 |
任意の文字列 |
説明
|
属性 |
説明 |
|---|---|
|
説明 |
テンプレートについての情報を提供するための説明 |
|
重要 |
必須 |
|
形式 |
文字列 |
|
可能な値 |
任意の文字列 |
ロゴ
|
属性 |
説明 |
|---|---|
|
説明 |
テンプレート用ロゴの位置 |
|
重要 |
任意 |
|
形式 |
文字列 |
|
可能な値 |
カスタムアプリテンプレートが置かれているネットワークドメインでの正しい URL またはパス。 |
位置を
|
属性 |
説明 |
|---|---|
|
説明 |
テンプレート URLテンプレート用の紹介 Web ページも可能。 |
|
重要 |
任意 |
|
形式 |
文字列 |
|
可能な値 |
任意の正しい URL |
プラットフォーム
|
属性 |
説明 |
|---|---|
|
説明 |
サポートされるプラットフォーム。正しい値である必要があります。 |
|
重要 |
必須 |
|
形式 |
文字列 |
|
可能な値 |
|
|
例 |
|
イメージ
|
属性 |
説明 |
|---|---|
|
説明 |
テンプレートに付随するイメージ |
|
重要 |
必須 |
|
形式 |
文字列 |
|
可能な値 |
任意の正しいイメージ |
|
例 |
|
コマンド
|
属性 |
説明 |
|---|---|
|
説明 |
Docker コンテナで実行するコマンド指定がない場合、コンテナは Dockerfile で指定されているデフォルトコマンドを使用します。 |
|
重要 |
任意 |
|
形式 |
文字列 |
|
可能な値 |
任意の文字列 |
|
例 |
|
エントリーポイント
|
属性 |
説明 |
|---|---|
|
説明 |
Docker コンテナを開始するエントリーポイント指定がない場合、コンテナは Dockerfile で指定されているデフォルトエントリーポイントを使用します。 |
|
重要 |
任意 |
|
形式 |
文字列 |
|
可能な値 |
任意の文字列 |
|
例 |
|
env
|
属性 |
説明 |
|---|---|
|
説明 |
テンプレートが必要とする環境変数を説明する JSON アレイ。アレイ内の各要素は正しい JSON オブジェクトでなければなりません。 |
|
重要 |
任意 |
|
形式 |
アレイ |
|
可能な値 |
正しい JSON アレイ |
|
アレイフォーマット |
|
|
例 |
|
ラベル
|
属性 |
説明 |
|---|---|
|
説明 |
テンプレートに対応付けられたラベルを説明する JSON アレイ。アレイ内の各要素は正しい JSON オブジェクトでなければなりません。 |
|
重要 |
任意 |
|
形式 |
アレイ |
|
可能な値 |
正しい JSON アレイ |
|
アレイフォーマット |
|
|
例 |
|
ボリューム
|
属性 |
説明 |
|---|---|
|
説明 |
テンプレートに対応付けられたボリュームを説明する JSON アレイ。アレイ内の各要素は、必要なコンテナプロパティをもった正しい JSON オブジェクトでなければなりません。 |
|
重要 |
任意 |
|
形式 |
アレイ |
|
可能な値 |
正しい JSON アレイ |
|
アレイフォーマット |
|
|
例 |
|
ポート
|
属性 |
説明 |
|---|---|
|
説明 |
テンプレートに公開されたポートを説明する JSON アレイ。アレイ内の各要素は、プロトコルだけでなくコンテナ内のポート番号を指定している正しい JSON 文字列でなければなりません。これは、ホストにマップされているポートを規定するために、ポート番号とコロンが前につく場合があります (8080: など)。ホストポートが指定されていない場合、Docker ホストはコンテナが起動した時にポートを自動的に割り当てます。 |
|
重要 |
任意 |
|
形式 |
アレイ |
|
可能な値 |
正しい JSON アレイ |
|
例 |
|
ホスト名
|
属性 |
説明 |
|---|---|
|
説明 |
コンテナのホスト名。コンテナを識別しやすくします。 |
|
重要 |
任意 |
|
形式 |
文字列 |
|
可能な値 |
任意の文字列 |
|
例 |
|
restart_policy
|
属性 |
説明 |
|---|---|
|
説明 |
Docker コンテナに対応したリスタートポリシー指定されていない場合、この値は停止時以外になります。 |
|
重要 |
任意 |
|
形式 |
文字列 |
|
可能な値 |
|
|
例 |
|
auto_start_policy
|
属性 |
説明 |
|---|---|
|
説明 |
LXD コンテナに対応したオートスタートポリシー指定されていない場合、この値は保持になります。 |
|
重要 |
任意 |
|
形式 |
文字列 |
|
可能な値 |
|
|
例 |
|
インタラクティブ
|
属性 |
説明 |
|---|---|
|
説明 |
Docker コンテナがフォアグラウンドモードで起動するかどうかをコントロール。指定されていない場合、値は true になります。 |
|
重要 |
任意 |
|
形式 |
ブーリアン型 |
|
可能な値 |
|
|
例 |
|
tty
|
属性 |
説明 |
|---|---|
|
説明 |
Docker コンテナが疑似 TTY を割り当てるかどうかをコントロール。指定されていない場合は true になります。 |
|
重要 |
任意 |
|
形式 |
ブーリアン型 |
|
可能な値 |
|
|
例 |
|
権限付
|
属性 |
説明 |
|---|---|
|
説明 |
コンテナが権限モードで起動するかどうかをコントロール。指定されていない場合は false になります。 |
|
重要 |
任意 |
|
形式 |
ブーリアン型 |
|
可能な値 |
|
|
例 |
|
NGINX コンテナにカスタムアプリテンプレートをホストする
次に、Container Stationで利用できるカスタムアプリテンプレートを作る必要があります。このトピックでは、NGINX コンテナでテンプレートファイルをホスティングし、Container Stationで実行されるプロセスを説明します。
それ以外にもアプリテンプレートファイルはQNAP Web サーバーにもホストできます。詳細については、「QNAP Web サーバーにカスタムアプリテンプレートをホストする」をご覧ください。
カスタムアプリテンプレートJSONファイルを更新した後は、コンテナ内で変更を反映させるためにNGINXコンテナを再起動する必要があります。
アプリテンプレートファイルが利用可能になります。
アプリテンプレートファイルがアクセス可能かどうかは、Web ブラウザに http://HOST_IP_ADDRESS:PUBLISHED_HOST_PORT/TEMPLATE_FILENAME を入力します。たとえば、http://192.168.1.1:30080/my-templates.json のような形です。
QNAP Web サーバーにカスタムアプリテンプレートをホストする
次に、Container Stationで利用できるカスタムアプリテンプレートを作る必要があります。このトピックでは、QNAP Web サーバーでテンプレートファイルをホスティングするプロセスを説明します。
それ以外にも、アプリテンプレートファイルは、Container Station内で直接NGINXコンテナでホストすることができます。「NGINX コンテナにカスタムアプリテンプレートをホストする」を参照してください。
- QTS Web サーバーを有効化します。
- カスタムアプリテンプレートファイルアップロードします。
アプリテンプレートファイルが利用可能になります。
アプリテンプレートファイルがアクセス可能かどうかは、Web ブラウザに http://HOST_IP_ADDRESS:WEB_SERVER_PORT/TEMPLATE_FILENAME を入力します。たとえば、http://192.168.1.1:80/my-templates.json のような形です。
Container Station にカスタムアプリテンプレートを追加する
次に、Container Stationにカスタムアプリテンプレートを追加します。これにより、アプリケーションの一覧が Container Station 内で利用可能になります。
Container Station が、カスタムアプリテンプレートを保存します。



をクリックします。



