rust-deployable-service について
rust-deployable-serviceは、Rustサービスをローカル開発から再現可能なコンテナまたはクラウドへのデプロイへ移行するためのスキルです。設定、再現可能なビルド、Dockerイメージ、ヘルスチェックを扱います。
主な機能
- 01サービスとデプロイ関連ファイルの確認
- 02ビルド時と実行時の設定の分離
- 03マルチステージDockerビルドの作成
- 04SQLxオフラインチェックへの対応
- 05ヘルスチェックとレディネスチェックの追加
活用シーン
- 01Rustサービスのコンテナデプロイ準備
- 02デプロイ設定とシークレットの管理
- 03チェックイン済みSQLxメタデータでのビルド
- 04納品前のDockerイメージ検証
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ lvtd-llc/ skills --skill rust-deployable-serviceインストール後、Claude Code で/rust-deployable-serviceを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agents/openai.yamlreferences/configuration.mddocker-rust.mdscripts/docker-preflight.sh詳細
Rust デプロイ可能サービス
Rust サービスをローカル開発から、再現可能なコンテナまたはクラウドへのデプロイに移行する必要がある場合に、このスキルを使用します。実行時の設定を明示し、ビルドを再現可能に保ち、ヘルスチェックはシンプルにします。
基本的なワークフロー
Cargo.toml、ワークスペースの構成、Dockerfile、.dockerignore、 設定ファイル、マイグレーション、.sqlx/、CI、デプロイのドキュメントを確認します。- バイナリのエントリーポイントと実行時の依存関係(データベース、Redis、 外部 API、TLS ルート証明書、静的ファイル、テンプレート、マイグレーション、設定)を特定します。
- ビルド時の設定と実行時の設定を分離します。本番環境のシークレットを イメージに埋め込んではいけません。
- デプロイ固有の値を環境変数で上書きできる、階層型の設定を使用します。
- マルチステージ Docker ビルドを使用し、最終イメージには実行時バイナリと 必要なアセットだけをコピーします。
- SQLx のクエリチェックに対応します。チェック済みの
.sqlx/メタデータとSQLX_OFFLINE=trueを使用するか、ビルド時に意図的にデータベースを用意します。 - 実際の依存関係に合ったヘルスチェックとレディネスチェックを追加します。
- 同梱の Docker プリフライト、またはリポジトリに用意されている同等の CI コマンドを実行します。
設定ルール
設定ファイル、環境変数、シークレットの取り扱いを追加する場合は、
references/configuration.md を参照してください。
- ローカルのデフォルト値は使いやすく、本番環境のデフォルト値は慎重に設定します。
- 可能な場合は、サーバーをバインドする前に起動時に設定を検証します。
- シークレットは環境変数またはデプロイ先のシークレットマネージャーに保存します。
- ハンドラーやリポジトリの深い階層で環境変数を読み取ることは避けます。
Docker のルール
Docker ビルドを変更する前に、references/docker-rust.md を参照してください。
- 依存関係のキャッシュを意図的に活用します。可能な場合は、ソースを編集するたびに ビルド全体が無効になることを避けます。
- リポジトリで
Cargo.lockをコミットしている場合は、リリースビルドで--lockedを使用します。 - 外部への HTTPS 通信が必要な場合は、CA 証明書を含めます。
- バイナリが実行時に必要とする場合に限り、マイグレーション、テンプレート、静的アセットをコピーします。
- デプロイ先のプラットフォームがサポートしている場合は、root 以外のユーザーとして実行します。
検証
Docker がデプロイの経路に含まれる場合は、Rust プロジェクトのルートから実行します。
path/to/rust-deployable-service/scripts/docker-preflight.sh
このスクリプトはイメージをビルドします。サービスの起動には環境とインフラストラクチャが必要なことが多いため、RUST_DEPLOY_SMOKE_COMMAND が設定されている場合にのみ、スモークコマンドを実行します。
参考ファイル
references/configuration.md:型付き設定の読み込み、上書き、検証、シークレット。references/docker-rust.md:マルチステージビルド、SQLx のオフラインビルド、実行時アセット、イメージチェック。
コメント
Markdown 対応