バージョン管理とビルド
プロフェッショナルなプロジェクトには、信頼できるバージョン管理と標準化されたビルドプロセスが必要です。
Lino は各サービスのバージョン管理に Semantic Versioning(SemVer)を採用し、サービスの現在のバージョンに応じて名前が付けられた Docker イメージを生成するコマンドを提供します。
サービスのバージョン管理
Lino の各サービスは独立したバージョン管理を持ち、グローバルな同期を必要とせずに、それぞれ異なるペースで進化させることができます。
SemVer 標準
MAJOR.MINOR.PATCH
- MAJOR → 非互換な変更(breaking changes)。
- MINOR → 後方互換性のある新機能。
- PATCH → バグ修正および内部改善。
例:
1.0.0 → 最初の安定版。
1.1.0 → 互換性を壊さずに新しいエンドポイントを追加。
2.0.0 → クライアントの更新が必要な変更。
lino version コマンド
CLI はバージョンのインクリメントをネイティブにサポートしています:
lino version bump
インタラクティブウィザードが、インクリメントの種類(major、minor、patch)の選択を案内し、サービス設定ファイルを新しいバージョンで自動更新します。
各実行でサービスのバージョンマニフェストが更新され、以下を保証します:
- 変更の明確な追跡。
- リリースプラクティスとの一貫性。
- CI/CD パイプラインとの整合性。
Docker イメージのビルド
Lino は各サービスや Web アプリケーションのバージョンごとに Docker イメージを自動生成し、手作業を排除します。
命名規則:
project-name/services/service-name : major.minor.patch
イメージは任意のレジストリに公開可能です:
- Docker Hub
- GitHub Container Registry
- AWS ECR
- Azure Container Registry
- またはその他の互換リポジトリ。
lino build コマンド
Docker イメージをコンパイルして生成するには、次を実行します:
lino build
このプロセスで行われること:
1. サービスおよび/または Web アプリのコードをコンパイル。
2. 必要な設定(接続文字列、シークレット、環境変数)を適用。
3. 現在の SemVer バージョンに基づいて Docker イメージを生成。
4. イメージに標準化された名前とタグを付与。
このプロセスにより、一貫性があり再現可能なビルドが保証され、本番環境での障害が減少し、CI/CD パイプラインでのデプロイが迅速化されます。
こうして Lino はサービスごとの独立したバージョン管理と自動化ビルドプロセスを組み合わせ、リリースガバナンスとあらゆる環境での信頼性の高い配布を実現します。
