fleetflow-0.1.1 is not a library.
FleetFlow
Docker Composeよりシンプル。KDLで書く、次世代の環境構築ツール。
FleetFlowは、KDL(KDL Document Language)をベースにした、革新的で超シンプルなコンテナオーケストレーションツールです。Docker Composeの手軽さはそのままに、より少ない記述で、より強力な設定管理を実現します。
✨ 特徴
- 超シンプル: Docker Composeと同等かそれ以下の記述量
- 可読性: YAMLよりも読みやすいKDL構文
- ステージ管理: 開発環境から本番環境まで統一管理
- 自動推測: サービス名から自動的にDockerイメージを推測
📦 インストール
🚀 クイックスタート
1. 設定ファイルを作成
flow.kdl:
service "postgres" {
version "16"
ports {
port host=5432 container=5432
}
environment {
POSTGRES_USER "myuser"
POSTGRES_PASSWORD "mypass"
POSTGRES_DB "mydb"
}
}
service "redis" {
version "7"
ports {
port host=6379 container=6379
}
}
service "app" {
image "myapp"
version "latest"
ports {
port host=8080 container=8080
}
environment {
DATABASE_URL "postgresql://myuser:mypass@postgres:5432/mydb"
REDIS_URL "redis://redis:6379"
}
depends_on "postgres" "redis"
}
stage "local" {
service "postgres"
service "redis"
service "app"
}
2. サービスを起動
3. サービスを確認
4. サービスを停止
📚 主なコマンド
| コマンド | 説明 |
|---|---|
fleetflow up [stage] |
ステージ内のサービスを起動 |
fleetflow down [stage] |
ステージ内のサービスを停止 |
fleetflow ps |
実行中のサービスを一覧表示 |
fleetflow logs <service> |
サービスのログを表示 |
🎯 主な機能
KDLベースの直感的な記述
YAMLの冗長さから解放され、読みやすく書きやすい設定ファイルを実現。
service "api" {
image "myapp:latest"
port 8080
env {
DATABASE_URL "postgresql://localhost/mydb"
}
}
ステージベースの環境管理
開発環境から本番環境まで、ステージで管理。
stage "local" {
service "postgres"
service "redis"
service "app"
}
stage "production" {
service "postgres"
service "redis"
}
自動イメージ推測
サービス名から自動的にDockerイメージを推測。設定の記述量を削減。
service "postgres" {
version "16" // postgres:16 として自動推測
}
テンプレート変数
環境変数や変数定義を使って、設定を動的に生成。
variables {
app_version "1.0.0"
registry "ghcr.io/myorg"
}
service "api" {
image "{{ registry }}/api:{{ app_version }}"
}
📖 ドキュメント
🏗️ アーキテクチャ
FleetFlowは以下のクレートで構成されています:
- fleetflow - メインCLI
- fleetflow-atom - コア機能(パーサー、モデル、ローダー)
- fleetflow-config - 設定ファイル検索と管理
- fleetflow-container - Dockerコンテナランタイム統合
📄 ライセンス
MIT OR Apache-2.0
🙏 コントリビューション
Issue、Pull Requestを歓迎します!
🔗 関連クレート
fleetflow-atom- コア機能fleetflow-config- 設定管理fleetflow-container- コンテナランタイム統合