JelinaOS は、すぐに使えるコンテナオーケストレーションを提供します。docker-compose 2.x の構文に完全対応し、クラウドのリリースまたはローカル API で構成して、エージェントが自動デプロイします。さらに、非コンテナアプリケーション(ProgramSet)の宣言的管理を拡張し、従来型プログラムも設定によって管理できるようにしています。
構成の実行方法
Section titled “構成の実行方法”構成ファイルは宣言的な設定です。クラウドの Release またはローカル API で定義し、エージェントが同期して自動デプロイします。デバイスには単一コンテナの日常操作用に Docker コマンドがありますが、複数サービスの構成はエージェントが一元実行するため、追加のオーケストレーションツールを入れる必要はありません。
Compose の互換性
Section titled “Compose の互換性”2.x 仕様に基づき、一般的な構成ファイルを円滑に移行できます。
- サービス、ネットワーク、ボリューム、環境変数、依存関係などの一般的な設定に対応します。
- 2.x で導入されたフィールドと動作に互換性があります。
- 3.x で追加されたフィールドは対象外です。移行時は 2.x 構文を使用してください。
version: "2.4"
services: app: image: myapp:1.0.0 restart: always environment: MODE: production ports: - "8080:80"
worker: image: myworker:1.0.0 restart: on-failure depends_on: - app非コンテナアプリケーション:ProgramSet の宣言的管理
Section titled “非コンテナアプリケーション:ProgramSet の宣言的管理”産業現場には、スクリプト、デーモン、サードパーティーのバイナリなど多くの従来型プログラムがあります。JelinaOS はそれらを統一された宣言的管理に組み込みます。設定項目はシステムサービスの意味と対応しており、学習しやすく、強力に管理できます。
programs: myapp: command: run.sh # 起動コマンド running: true # 実行するか restart: always # 再起動ポリシー environment: # 環境変数 MODE: production working_directory: . # 作業ディレクトリ user: root # 実行ユーザー pid_file: /var/run/myapp.pid対応する設定フィールド
Section titled “対応する設定フィールド”| フィールド | 意味 | 説明 |
|---|---|---|
command |
起動コマンド | 必須。プログラムのエントリーポイント |
running |
実行の有無 | デフォルトは true |
restart |
再起動ポリシー | no / on-success / on-failure / on-abnormal / on-watchdog / on-abort / always |
environment |
環境変数 | キーと値のペア |
kill_signal |
停止シグナル | プログラムの停止時に送信するシグナル |
working_directory |
作業ディレクトリ | プログラムの実行ディレクトリ |
type |
サービスの種類 | simple / forking / oneshot / dbus / notify / idle |
user / group |
実行ユーザー/グループ | 指定のユーザーやグループとして実行 |
pid_file |
PID ファイル | プロセス PID を記録 |
wants / requires |
依存関係 | 任意の依存/必須の依存 |
before / after |
起動順序 | 指定サービスの前/後に起動 |
conflicts |
排他関係 | 指定サービスと同時実行しない |
start_limit_interval_sec / start_limit_burst |
再起動制限 | 指定時間内の最大再起動回数 |
start_limit_action |
制限超過時の動作 | none / reboot / poweroff など |
remain_after_exit |
終了後の状態維持 | 重複起動を防止 |
exec_start_pre / exec_start_post |
起動前後のコマンド | 起動前/後に実行するコマンド |
サービスユニットの拡張
Section titled “サービスユニットの拡張”ProgramSet は、起動時の依存関係や条件確認など、ユニットレベルの高度な設定にも対応します。
programs: myapp: command: run.sh restart: always Install: WantedBy: multi-user.target # 起動時に自動実行 Unit: ConditionPathExists: /data/app/config.json # 条件確認例:混在するアプリケーションの構成
Section titled “例:混在するアプリケーションの構成”version: "2.4"
services: # コンテナ化された業務アプリ web: image: myweb:1.0.0 restart: always
programs: # 従来型の収集プログラム collector: command: collector --config /data/collector.conf restart: on-failure after: webコンテナとネイティブプログラムが同じ構成体系で連携し、依存関係、起動順序、再起動ポリシーを一元管理します。これが JelinaOS のアプリケーション管理の特長です。