주요 콘텐츠로 건너뛰기

Leapcell에 Rust 앱 배포하기

아래 해결 방법으로 문제가 해결되지 않으면 Leapcell Discord 커뮤니티에 가입하여 추가 지원을 받으세요.

Join 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" 페이지에서 방금 포크한 리포지토리를 선택합니다.

리포지토리에 액세스하려면 Leapcell을 GitHub 계정에 연결해야 합니다.

GitHub에 연결하려면 다음 지침을 따르세요.

연결되면 리포지토리가 목록에 나타납니다.

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)을 지정합니다.

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

해당 필드에 다음 값을 입력합니다.

4. 앱에 액세스:

배포되면 배포 페이지에 foo-bar.leapcell.dev와 같은 URL이 표시됩니다. 서비스 페이지에 표시된 도메인을 방문하세요.

지속적인 배포

연결된 브랜치에 푸시할 때마다 자동으로 빌드 및 배포가 트리거됩니다. 실패한 빌드는 안전하게 취소되므로 다음 성공적인 배포까지 현재 버전이 실행 상태로 유지됩니다.

지속적인 배포에 대해 자세히 알아보세요.