以下是您提供文本的日语翻译:


title: アプリの作成
description:
type: “Docs”
tip: 上部のバーの固定形式は削除しないでください。descriptionは記事の説明であり、記入しない場合は最初の段落が自動的に使用されます。


ZimaOS Docker アプリケーション適応マニュアル

ZimaOS へのアプリケーションの公開方法

  1. Docker アプリの公開および適応チュートリアル
  2. PC アプリケーションのコンパイルおよびオンラインチュートリアル
  3. クラウドアプリケーションの移行チュートリアル

ZimaOS Docker アプリケーションチェックリストと推奨設定

モジュール化されたマイルストーン: 再起動なしでアプリケーションのアップグレードを優先する

アプリケーションの傾向判断

アプリケーションの適応作業量を予測し、直接適応できるか、独自にイメージを構築する必要があるかなどを予測します。

一般的に、アプリケーションの公式ウェブサイトは以下の3つの傾向に分けることができます:

Docker 自己展開

  • 難易度: 🌟
  • 特徴: 公式ウェブサイトまたは GitHub は、自己展開オプションを優先して提供します。
  • 例: LocalAI、OpenWebUI、Nextcloud など
  • これは、このアプリケーションの開発者が自己展開環境で開発・テストを行った可能性が高いことを意味します。元々の開発者およびコミュニティによる自己展開経験があり、適応が比較的容易です。
  • 最小限の設定で提供される AIO イメージがある可能性が高く、これに直接設定を行うことができます。

PC 自己展開

  • 難易度: 🌟🌟🌟
  • 特徴: 公式ウェブサイトまたは GitHub は、Win/Mac/Linux 用のダウンロードを優先提供し、主要なインターフェースは WebUI を介して提供されます。
  • 例: AUTOMATIC1111/stable-diffusion-webui
  • このアプリケーションのインストールプロセスは、開発者およびコミュニティによって検証されます。しかし、適切な Docker イメージが提供されていない場合があります。これは、プロジェクト開始時には優先されない場合があるためです。
  • もし準備された Docker イメージがない場合、インストールプロセスでエラーが発生する心配はほとんどないため、Docker イメージを自分でパッケージ化するのは比較的簡単です。必要な環境を設定し、依存関係を事前にインストールすれば良いです。

クラウドサービス

  • 難易度: 🌟🌟🌟🌟🌟
  • 特徴: 公式ウェブサイトまたは GitHub は、提供されているクラウドサービスの使用を推奨し、自己展開方法も提供します。通常、アプリケーションは多機能なXXプラットフォームとして、さまざまなニーズに対応できると説明されています。
  • 例: Dify、TaskingAI など
  • このアプリケーションの開発者は、通常、クラウドクラスターの展開環境を優先し、K8s などのコンテナオーケストレーション環境を基に開発している可能性が高いです。自己展開オプションは、通常、docker compose や k8s を通じて構築されます。完全なアプリケーションの起動には複数のコンテナサービスと複数のイメージが必要であり、環境変数や外部ファイルが多数必要です。
  • この種のアプリケーションでは、アプリケーション起動に必要なさまざまなサービス関係や、膨大な環境変数の設定方法を学ぶ必要があります。同時に、ZimaOS のアプリケーション能力を超えている場合、自分でイメージを構築するのは非常に難しくなります。

アプリケーションコンポーネントの理解

アプリケーションが依存する重複サービス、異なる設定の影響、ユーザーが注意すべきことを分析します。

サービス要件の分析

通常、各アプリケーションには独立したフロントエンドとバックエンドがあり、以下のような共通サービスに依存する場合があります:

  • 各種データベース:mysql、redis、pg など
  • 各種共有API:
    • LLMs: Ollama、LocalAI、LM Studio
    • ……

この段階では、共有サービスや事前インストールされた推奨依存関係はサポートされていません。
アプリ開発者 / アダプター向け:
適応時に、AIOの完成したイメージを優先的に使用するか、必要なサービスをイメージまたはコンポーズにパッケージ化することを検討してください。
ZimaOS 開発者向け:
事前インストールされ推奨される依存関係のサポートを検討してください。

データストレージ要件の分析

  • アプリケーション実行中に生成される一時ファイルディレクトリ
  • アプリケーションが復元/移行時に必要な永続ファイルディレクトリ
  • ユーザーが管理/使用する必要があるファイルディレクトリ

理解したら、ZimaOS の定義されたデータディレクトリ構造に従って、初期化マッピングを実行し、ユーザーが注意すべきディレクトリを適切なヒントで通知します。

ポート要件の分析

  • WebUI サービスのポート、HTTP/HTTPS
    • 通常はシステムが自由に割り当て、変更しても正常に動作します
    • 一部のアプリケーションでは、特定のポートが必要であるため、その確認が必要です
  • API ポート
    • 多くのアプリケーションの API ポートは従来のものを使用し、最初にオリジナルのポートを使用し、次に自動割り当てを考慮するべきです
    • 必要に応じて、ユーザーにヒントで通知する必要があります
    • 例:Ollama の113114ポート
  • 特別な目的を持ち、必ず存在するべきポート(DNS など)
    • 一部のポートは特定の目的に使用され、割り当てなければ、コア機能が失敗します
    • 例:adguardのDNSポートなど
  • アプリケーション専用の補助機能ポート
    • インターネット内で発見するために使用される特殊なポート
    • これらのポートはオリジナルのポートを使用しないと、補助機能が失敗します

ZimaOS はこの段階で柔軟なポート割り当てをサポートしていません。
アプリ開発者 / アダプター向け:
アプリケーションの特性に応じてポートとヒントを適応時に設定することを検討してください。
ZimaOS 開発者向け:
定義されたポート割り当てメカニズムのサポートを検討してください。

デバイス要件の分析

  • GPU 要件
  • CPU 要件
  • USB デバイス要件

アダプト時に必要なデバイスの設定を検討し、GPU が利用できない場合に CPU にフォールバックできるかを考慮してください。

ZimaOS はこの段階で柔軟なデバイス割り当てをサポートしていません。
アプリ開発者 / アダプター向け:
アプリケーションの特性に応じてデバイスとヒントを適応時に設定することを検討してください。
ZimaOS 開発者向け:
定義されたデバイス割り当てメカニズム、およびデバイス要件の検出とフィードバックメカニズムのサポートを検討してください。

実行時の要件の分析

  • nvidia

この種のアプリケーションは稀ですが、適応時に該当する実行時要件を理解し、それを設定してヒントに適切に