Containeriser dine Rust-applikationer med Docker for at forenkle implementeringen og sikre ensartethed på tværs af forskellige miljøer.
Containerisering giver væsentlige fordele med hensyn til portabilitet, isolering og effektivitet. Det muliggør ensartet udrulning af applikationer på tværs af forskellige miljøer og sikrer sikkerhed og stabilitet gennem applikationsisolering. Det optimerer også ressourceudnyttelsen, forenkler udviklings- og styringsprocesser og forbedrer skalerbarheden.
Containerizing Rust-apps med Docker giver et pålideligt og effektivt middel til at pakke applikationer og deres afhængigheder ind i selvstændige og bærbare miljøer. Det tillader problemfri udførelse på tværs af forskellige systemer uden bekymring for den underliggende infrastruktur.
Opsætning af en simpel webserver i rust med Actix
Du kan opsætte en simpel webserver i Rust med Actix og containeriser din app med Docker. Du vil afsløre en port, hvorfra du får adgang til serveren for anmodninger.
Kør denne kommando for at oprette et nyt Rust-projekt med Fragtpakkeansvarlig:
last ny min-app
Når du opretter et nyt Rust-projekt, tilføjer Cargo cargo.toml fil til dit projekts rodbibliotek. Åbn cargo.toml fil og tilføj Actix-kassen til afhængigheder afsnit således:
[afhængigheder]
actix-web = "4.3.1"
Sådan kan du konfigurere en simpel server i Rust med Actix-kassen:
brug actix_web::{get, App, HttpResponse, HttpServer, Responder};
// Importer nødvendige afhængigheder fra Actix Web framework
#[få("/")]
asynkronfnHej() -> impl Svar {
// Definer en behandlerfunktion for GET-anmodninger til rodstien ("/")
// Funktionen returnerer en type, der implementerer Responder-egenskabenHttpResponse::Okay().legeme("Hej Verden!")
// Returner et HTTP-svar med en statuskode på 200 (OK)
// og en svartekst af "Hello, World!"
}#[actix_web:: main]
asynkronfnvigtigste() -> std:: io::Resultat {
// Indgangspunkt for applikationenHttpServer:: new(|| {
// Opret en ny instans af HttpServerApp:: new().service (hej)
// Opret en ny forekomst af appen og registrer hej-funktionen
}).binde("127.0.0.1:8080")?.løb().vente
// Bind serveren til IP-adressen og porten
// Start serveren og afvent dens færdiggørelse
}
Programmet opsætter en grundlæggende HTTP-webserver med Actix. Det Hej funktion er en handlerfunktion, der reagerer på GET-anmodninger på port 8080 med "Hej, verden!".
Det vigtigste funktionen opsætter en serverinstans med HttpServer:: ny funktion og binder serveren til at køre på localhost-adressen 127.0.0.1:8080.
Udfør nu fragtkørsel kommando for at køre webserveren. Her er resultatet af at åbne adressen i en webbrowser.
At skrive en Dockerfile til din Rust-app
For at containerisere din Rust-app med Docker skal du oprette en Dockerfil og definere kommandoerne for containeriseringsprocessen.
Det Dockerfil har ikke en udvidelse; du behøver kun at oprette en Dockerfil fil. Du kan også oprette en .dockerignore fil til abstrakte filer i din arbejdsmappe fra din byggeproces.
Definer kommandoer i din Dockerfile
Din Dockerfil vil indeholde kommandoer, der trækker et basisbillede fra Docker-lageret, indstiller arbejdsbiblioteket, kopierer filer, byg afhængigheder, byg applikationen, opret et minimalt billede, eksporter porten og kør Ansøgning.
# Brug den seneste version af Rust-basebilledet
FRA rust: seneste# Indstil arbejdsmappen i containeren til /my
WORKDIR /usr/src/my-app# Kopier Rust-projektfilerne til arbejdsmappen
KOPI. .# Byg Rust-appen
LØB lastbygning
# Indstil kommandoen til at køre Rust-appen
CMD fragtkørsel
Efter at have defineret de nødvendige kommandoer til containerisering af din app, kan du bygge en container med denne kommando:
docker build -t my-app .
Kommandoen bygger et Docker-billede til din min-app app med tagget min-app fra den aktuelle mappe.
Du kan bruge docker-løb kommando for at køre dit Docker-billede.
docker run -p 8080:8080 min-app
Det -p 8080:8080 optionen kortlægger værtsmaskinens port 8080 til containerens port 8080. Docker videresender trafikken dirigeret til port 8080 på værtsmaskinen til port 8080 i containeren.
Du kan sende anmodninger til containeren gennem localhost-port 8080 for at ringe til webserveren.
Docker Compose muliggør orkestrering af flere beholdere
At arbejde med flere containere er en udbredt opgave, når man bygger sofistikerede Docker-applikationer. Du kan bruge Docker Compose til at arbejde med flere Docker-containere.
Docker Compose giver funktionalitet til at definere de tjenester, der udgør din app, specificering af afhængighederne mellem tjenester, definere miljøvariablerne for hver tjeneste, start, stop, genstart, skalering af din applikations containere og andre funktionaliteter.