Leapcell에 Rust 앱 배포하기
아래 해결 방법으로 문제가 해결되지 않으면 Leapcell Discord 커뮤니티에 가입하여 추가 지원을 받으세요.
몇 단계만 거치면 Leapcell에서 Axum 프레임워크를 사용하여 Rust 앱을 배포할 수 있습니다. 예제 앱을 사용하거나 직접 배포할 수 있습니다.
이것은 가장 간단한 Rust 배포 예제입니다. 다른 Rust 예제는 이 토대 위에 구축할 수 있습니다.
계속하려면 GitHub 계정이 필요합니다. 아직 계정이 없으면 GitHub 웹사이트에서 만들 수 있습니다.
1. GitHub에서 Axum 예제를 포크합니다.
Repo: 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" 페이지에서 방금 포크한 리포지토리를 선택합니다.
3. 생성 중 다음 값을 제공합니다.
Rust는 컴파일된 언어이므로 cargo build --release
를 사용하여 Rust 애플리케이션을 빌드합니다.
이 예제에서는 프로젝트 이름이 app
이므로 ./target/release/app
로 컴파일됩니다.
시작 명령은 cargo run --release
대신 ./target/release/app
여야 합니다. cargo run
은 .cache
파일을 작성하고 Leapcell 환경은 해당 경로에 파일 작성을 지원하지 않기 때문입니다. 자세한 내용은 Service Storage를 참조하세요.
자체 앱을 사용하는 경우 명령이 프로젝트와 일치하는지 확인하십시오. app
을 프로젝트 이름으로 바꾸고 올바른 시작 명령(예: ./target/release/myapp
)을 지정합니다.
Field | Value |
---|---|
Runtime | Rust (Any version) |
Build Command | cargo build --release |
Start Command | ./target/release/app |
Port | 8080 |
해당 필드에 다음 값을 입력합니다.
4. 앱에 액세스:
배포되면 배포 페이지에 foo-bar.leapcell.dev
와 같은 URL이 표시됩니다. 서비스 페이지에 표시된 도메인을 방문하세요.