Kemas aplikasi Rust Anda dengan Docker untuk menyederhanakan penerapan dan memastikan konsistensi di berbagai lingkungan.
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
Kamu bisa menyiapkan server web sederhana di Rust dengan Actix dan kemas 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 Manajer paket kargo:
kargo aplikasi saya yang baru
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:
[ketergantungan]
actix-web = "4.3.1"
Inilah cara Anda mengatur server sederhana di Rust dengan peti Actix:
menggunakan actix_web::{dapatkan, Aplikasi, HttpResponse, HttpServer, Responder};
// Impor dependensi yang diperlukan dari kerangka kerja Actix Web
#[mendapatkan("/")]
asinkronfnHalo() -> impl Responden {
// Tentukan fungsi handler untuk permintaan GET ke jalur root ("/")
// Fungsi mengembalikan tipe yang mengimplementasikan sifat ResponderHttpRespon::Oke().tubuh("Halo Dunia!")
// Mengembalikan respons HTTP dengan kode status 200 (OK)
// dan isi tanggapan "Halo, Dunia!"
}#[actix_web:: utama]
asinkronfnutama() -> std:: io::Hasil {
// Titik masuk aplikasiHttpServer:: baru(|| {
// Buat instance baru dari HttpServerAplikasi:: baru().layanan (halo)
// Buat instance baru Aplikasi dan daftarkan fungsi halo
}).mengikat("127.0.0.1:8080")?.berlari().menunggu
// Mengikat server ke alamat IP dan port
// Mulai server dan tunggu penyelesaiannya
}
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.
Menulis Dockerfile untuk Aplikasi Rust Anda
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 gambar minimal, mengekspor port, dan menjalankan aplikasi.
# Gunakan versi terbaru dari gambar dasar Rust
DARI karat: terbaru# Setel direktori kerja dalam wadah ke /my
WORKDIR /usr/src/my-app# Salin file proyek Rust ke direktori kerja
MENYALIN. .# Bangun aplikasi Rust
BERLARI pembuatan kargo
# Tetapkan perintah untuk menjalankan aplikasi Rust
CMD lari kargo
Setelah menentukan perintah yang diperlukan untuk menampung aplikasi Anda, Anda dapat membuat wadah dengan perintah ini:
docker build -t aplikasi saya.
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 option memetakan port 8080 mesin host ke port container 8080. Docker akan meneruskan lalu lintas yang diarahkan ke port 8080 di mesin host ke port 8080 di container.
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 membentuk aplikasi Anda, menentukan ketergantungan antar layanan, menentukan variabel lingkungan untuk setiap layanan, memulai, menghentikan, memulai ulang, menskalakan wadah aplikasi Anda, dan lainnya fungsionalitas.