LeapcellでRust Appをデプロイする
もし以下の解決策で問題が解決しない場合は、お気軽にLeapcell 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アカウントに接続する必要があります。
接続されると、リポジトリがリストに表示されます。
3. 作成時に以下の値を入力します。
Rustはコンパイル言語であるため、cargo build --release
を使用してRustアプリケーションをビルドします。
この例では、プロジェクト名はapp
なので、./target/release/app
にコンパイルされます。
開始コマンドは、cargo run --release
ではなく./target/release/app
にする必要があります。これは、cargo run
が.cache
ファイルを書き込み、Leapcell環境はそのパスへのファイルの書き込みをサポートしていないためです。詳細については、サービスストレージを参照してください。
ご自身のアプリを使用している場合は、コマンドがプロジェクトと一致していることを確認してください。app
をご自身のプロジェクト名に置き換え、正しい開始コマンド(例:./target/release/myapp
)を指定してください。
Field | Value |
---|---|
Runtime | Rust (Any version) |
Build Command | cargo build --release |
Start Command | ./target/release/app |
Port | 8080 |
これらの値を対応するフィールドに入力します。