Farih.co.id
Home Programming Cara Mengumpulkan Aplikasi Rust Dengan Docker

Cara Mengumpulkan Aplikasi Rust Dengan Docker

rust foundation 2

Kontainerisasi menawarkan manfaat penting dalam hal portabilitas, isolasi, dan efisiensi. Ini memungkinkan penyebaran aplikasi yang konsisten di berbagai lingkungan dan memastikan keamanan dan stabilitas melalui isolasi aplikasi. Ini juga mengoptimalkan pemanfaatan sumber daya, menyederhanakan proses pengembangan dan manajemen, dan meningkatkan skalabilitas.


Mengkontainerisasi aplikasi Rust dengan Docker menyediakan cara yang andal dan efisien untuk mengemas aplikasi dan ketergantungannya ke dalam lingkungan mandiri dan portabel. Ini memungkinkan eksekusi tanpa hambatan di berbagai sistem tanpa memperhatikan infrastruktur yang mendasarinya.


Menyiapkan Server Web Sederhana di Rust Dengan Actix

Anda dapat mengatur server web sederhana di Rust dengan Actix dan mengemas aplikasi Anda dengan Docker. Anda akan mengekspos port dari mana Anda akan mengakses server untuk permintaan.

Jalankan perintah ini untuk membuat proyek Rust baru dengan pengelola paket Cargo:

 cargo new my-app

Saat Anda membuat proyek Rust baru, Cargo menambahkan cargo.toml file ke direktori root proyek Anda. Buka cargo.toml file dan tambahkan peti Actix ke file dependencies bagian sebagai berikut:

 [dependencies]
actix-web = "4.3.1"

Inilah cara Anda mengatur server sederhana di Rust dengan peti Actix:

 use actix_web::{get, App, HttpResponse, HttpServer, Responder};

#[get("https://www.makeuseof.com/")]
async fn hello() -> impl Responder {
    
    

    HttpResponse::Ok().body("Hello, World!")
    
    
}

#[actix_web::main]
async fn main() -> std::io::Result<()> {
    

    HttpServer::new(|| {
        

        App::new().service(hello)
        

    }).bind("127.0.0.1:8080")?.run().await
    
    
}

Program menyiapkan Server Web HTTP dasar dengan Actix. Itu Halo function adalah fungsi handler yang merespon permintaan GET pada port 8080 dengan “Halo, Dunia!”.

Itu utama fungsi mengatur instance server dengan HttpServer::baru fungsi dan mengikat server untuk berjalan di alamat localhost 127.0.0.1:8080.

Sekarang, jalankan lari kargo perintah untuk menjalankan web server. Berikut hasil membuka alamat di web browser.

hasil dari menjalankan server

Untuk mengemas aplikasi Rust Anda dengan Docker, Anda harus membuat file Dockerfile dan tentukan perintah untuk proses containerisasi.

Itu Dockerfile tidak memiliki ekstensi; Anda hanya perlu membuat Dockerfile mengajukan. Anda juga dapat membuat .dockerignore file ke file abstrak di direktori kerja Anda dari proses build Anda.

Mendefinisikan Perintah di Dockerfile Anda

Milikmu Dockerfile akan berisi perintah yang menarik image dasar dari repositori Docker, mengatur direktori kerja, menyalin file, membangun dependensi, membangun aplikasi, membuat image minimal, mengekspor port, dan menjalankan aplikasi.

 
FROM rust:latest


WORKDIR /usr/src/my-app


COPY . .


RUN cargo build


CMD cargo run

Setelah menentukan perintah yang diperlukan untuk menampung aplikasi Anda, Anda dapat membuat wadah dengan perintah ini:

 docker build -t my-app .

Perintah membuat gambar Docker untuk Anda my-app aplikasi dengan tag my-app dari direktori saat ini.

Anda dapat menggunakan menjalankan buruh pelabuhan perintah untuk menjalankan gambar Docker Anda.

 docker run -p 8080:8080 my-app

Itu -p 8080:8080 opsi memetakan port 8080 mesin host ke port kontainer 8080. Docker akan meneruskan lalu lintas yang diarahkan ke port 8080 pada mesin host ke port 8080 di kontainer.

hasil dari menjalankan server melalui Docker-1

Anda dapat mengirim permintaan ke wadah melalui port localhost 8080 untuk memanggil server web.

Docker Compose Mengaktifkan Orkestrasi Multi-Kontainer

Bekerja dengan banyak kontainer adalah tugas umum saat membangun aplikasi Docker yang canggih. Anda dapat menggunakan Docker Compose untuk bekerja dengan beberapa kontainer Docker.

Docker Compose menyediakan fungsionalitas untuk menentukan layanan yang menyusun aplikasi Anda, menentukan dependensi antar layanan, menentukan variabel lingkungan untuk setiap layanan, memulai, menghentikan, memulai ulang, menskalakan wadah aplikasi Anda, dan fungsi lainnya.

Comment
Share:

Leave a Reply

Your email address will not be published. Required fields are marked *

Ad