Containerizați aplicațiile Rust cu Docker pentru a simplifica implementarea și pentru a asigura coerența în diferite medii.

Containerizarea oferă beneficii esențiale în ceea ce privește portabilitatea, izolarea și eficiența. Permite implementarea consecventă a aplicațiilor în diferite medii și asigură securitatea și stabilitatea prin izolarea aplicațiilor. De asemenea, optimizează utilizarea resurselor, simplifică procesele de dezvoltare și management și îmbunătățește scalabilitatea.

Containerizarea aplicațiilor Rust cu Docker oferă un mijloc fiabil și eficient de a împacheta aplicațiile și dependențele acestora în medii autonome și portabile. Permite o execuție fără întreruperi în diverse sisteme, fără grija pentru infrastructura de bază.

Configurarea unui server web simplu în Rust cu Actix

Puteți configurați un server web simplu în Rust cu Actix și containerizați-vă aplicația cu Docker. Veți expune un port de unde veți accesa serverul pentru solicitări.

Rulați această comandă pentru a crea un nou proiect Rust cu Manager de pachete de marfă:

instagram viewer
cargo new my-app

Când creați un nou proiect Rust, Cargo adaugă încărcătură.toml fișier în directorul rădăcină al proiectului dvs. Deschide încărcătură.toml fișier și adăugați cutia Actix la dependențe secțiune astfel:

[dependențe]
actix-web = "4.3.1"

Iată cum puteți configura un server simplu în Rust cu cutia Actix:

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

// Importă dependențele necesare din cadrul Actix Web

#[obține("/")]
asincronfnBuna ziua() -> impl Răspuns {
// Definiți o funcție de gestionare pentru cererile GET către calea rădăcină ("/")
// Funcția returnează un tip care implementează trăsătura Responder

HttpResponse::Bine().corp("Salut Lume!")
// Returnează un răspuns HTTP cu un cod de stare de 200 (OK)
// și un corp de răspuns de „Hello, World!”
}

#[actix_web:: principal]
asincronfnprincipal() -> std:: io::Rezultat {
// Punctul de intrare al aplicației

HttpServer:: nou(|| {
// Creați o nouă instanță a HttpServer

Aplicație:: new().service (bună ziua)
// Creați o nouă instanță a aplicației și înregistrați funcția hello

}).lega("127.0.0.1:8080")?.alerga().așteaptă
// Legați serverul la adresa IP și la portul
// Porniți serverul și așteptați finalizarea acestuia
}

Programul configurează un server web HTTP de bază cu Actix. The Buna ziua funcția este o funcție de gestionare care răspunde la solicitările GET de pe port 8080 cu „Hello, World!”.

The principal funcția setează o instanță de server cu HttpServer:: nou funcția și leagă serverul să ruleze pe adresa localhost 127.0.0.1:8080.

Acum, executați rulare de marfă comandă pentru a rula serverul web. Iată rezultatul deschiderii adresei pe un browser web.

Scrierea unui Dockerfile pentru aplicația dvs. Rust

Pentru a vă containeriza aplicația Rust cu Docker, trebuie să creați un Dockerfile și definiți comenzile pentru procesul de containerizare.

The Dockerfile nu are extensie; trebuie doar să creați un Dockerfile fişier. De asemenea, puteți crea un .dockerignore fișier la fișierele abstracte din directorul de lucru din procesul de construire.

Definirea comenzilor în fișierul dvs. Docker

Ta Dockerfile va conține comenzi care extrag o imagine de bază din depozitul Docker, setează directorul de lucru, copiază fișiere, construiți dependențe, construiți aplicația, creați o imagine minimă, exportați portul și rulați aplicarea.

# Utilizați cea mai recentă versiune a imaginii de bază Rust
DIN rugină: mai recent

# Setați directorul de lucru din container la /my
WORKDIR /usr/src/my-app

# Copiați fișierele de proiect Rust în directorul de lucru
COPIE. .

# Construiește aplicația Rust
ALERGA construirea de marfă

# Setați comanda pentru a rula aplicația Rust
CMD rulare de marfă

După definirea comenzilor necesare pentru containerizarea aplicației dvs., puteți construi un container cu această comandă:

docker build -t my-app .

Comanda creează o imagine Docker pentru dvs aplicația mea aplicație cu eticheta aplicația mea din directorul curent.

Puteți folosi docker run comandă pentru a rula imaginea Docker.

docker run -p 8080:8080 aplicația mea

The -p 8080:8080 opțiunea mapează portul 8080 al mașinii gazdă la portul 8080 al containerului. Docker va redirecționa traficul direcționat către portul 8080 de pe mașina gazdă către portul 8080 din container.

Puteți trimite cereri către container prin portul localhost 8080 pentru a apela serverul web.

Docker Compose permite orchestrarea cu mai multe containere

Lucrul cu mai multe containere este o sarcină predominantă atunci când construiești aplicații Docker sofisticate. Puteți utiliza Docker Compose pentru a lucra cu mai multe containere Docker.

Docker Compose oferă funcționalitate pentru definirea serviciilor care alcătuiesc aplicația dvs., specificând dependențele dintre servicii, definirea variabilelor de mediu pentru fiecare serviciu, pornirea, oprirea, repornirea, scalarea containerelor aplicației dvs. și altele funcționalități.