メインコンテンツへスキップ

LeapcellでRust Appをデプロイする

もし以下の解決策で問題が解決しない場合は、お気軽にLeapcell Discordコミュニティにご参加ください。

Join Discord

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アカウントに接続する必要があります。

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)を指定してください。

FieldValue
RuntimeRust (Any version)
Build Commandcargo build --release
Start Command./target/release/app
Port8080

これらの値を対応するフィールドに入力します。

4. アプリにアクセスします。

デプロイされると、デプロイメントページにfoo-bar.leapcell.devのようなURLが表示されます。サービスページに表示されているドメインにアクセスしてください。

継続的デプロイメント

リンクされたブランチへのすべてのプッシュは、自動的にビルドとデプロイをトリガーします。失敗したビルドは安全にキャンセルされ、次回の正常なデプロイまで現在のバージョンが実行されたままになります。

詳細については、継続的デプロイメントをご覧ください。