LeapcellでのRustアプリケーションのデプロイ
ほんの数ステップで、Axumフレームワークを使用してLeapcellにRustアプリケーションをデプロイできます。サンプルアプリケーションを使用することも、独自のアプリケーションをデプロイすることもできます。
これは最もシンプルなRustのデプロイ例です。他のRustの例は、この基盤の上に構築できます。
続行するにはGitHubアカウントが必要です。お持ちでない場合は、GitHubウェブサイトで作成できます。
1. GitHubでAxumの例をフォークします。
リポジトリ: Axum example
以下は、公式Axumドキュメントから借用した、そのリポジトリのmain.rs
ファイルです。
use axum::{response::Html, routing::get, Router};
#[tokio::main]
async fn main() {
// build our application with a route
let app = Router::new().route("/", get(handler));
// run it
let listener = tokio::net::TcpListener::bind("127.0.0.1:8080")
.await
.unwrap();
println!("listening on {}", listener.local_addr().unwrap());
axum::serve(listener, app).await.unwrap();
}
async fn handler() -> Html<&'static str> {
Html("<h1>Hello, World!</h1>")
}
2. Leapcellダッシュボードでサービスを作成し、新しいリポジトリを接続します。
Leapcellダッシュボードにアクセスし、New Serviceボタンをクリックします。
「New Service」ページで、フォークしたリポジトリを選択します。
リポジトリにアクセスするには、LeapcellをGitHubアカウントに接続する必要があります 。
接続すると、リポジトリがリストに表示されます。
3. 作成時に以下の値を指定します。
Rustはコンパイル言語であるため、cargo build --release
を使用してRustアプリケーションをビルドします。
この例では、プロジェクト名がapp
であるため、./target/release/app
にコンパイルされます。
開始コマンドは、cargo run --release
ではなく./target/release/app
にする必要があります。これは、cargo run
が.cache
ファイルを書き込み、Leapcell環境がそのパスへのファイルの書き込みをサポートしていないためです。詳細については、サービスストレージを参照してください。
独自のアプリケーションを使用している場合は、コマンドがプロジェクトと一致していることを確認してください。app
をプロジェクト名に置き換え、正しい開始コマンドを指定します(例:./target/release/myapp
)。
フィールド | 値 |
---|---|
ランタイム | Rust(任意のバージョン) |
ビルドコマンド | cargo build --release |
開始コマンド | ./target/release/app |
ポート | 8080 |
これらの値を対応するフィールドに入力します。
4. アプリケーションへのアクセス:
デプロイされると、デプロイメントページにfoo-bar.leapcell.dev
のようなURLが表示されます。サービスページに表示されているドメインにアクセスします。
継続的デプロイメント
リンクされたブランチへのすべてのプッシュは、自動的にビルドと デプロイをトリガーします。失敗したビルドは安全にキャンセルされ、次回の成功したデプロイまで現在のバージョンが実行されたままになります。
継続的デプロイメントの詳細をご覧ください。