Containeriser Rust-applikasjonene dine med Docker for å forenkle distribusjonen og sikre konsistens på tvers av ulike miljøer.

Containerisering gir viktige fordeler når det gjelder portabilitet, isolasjon og effektivitet. Det muliggjør konsistent distribusjon av applikasjoner på tvers av ulike miljøer og sikrer sikkerhet og stabilitet gjennom applikasjonsisolering. Det optimerer også ressursutnyttelsen, forenkler utviklings- og administrasjonsprosesser og forbedrer skalerbarheten.

Containerizing Rust-apper med Docker gir en pålitelig og effektiv måte å pakke applikasjoner og deres avhengigheter inn i selvstendige og bærbare miljøer. Det tillater sømløs utførelse på tvers av forskjellige systemer uten bekymring for den underliggende infrastrukturen.

Sette opp en enkel webserver i rust med Actix

Du kan sette opp en enkel webserver i Rust med Actix og containeriser appen din med Docker. Du vil avsløre en port der du får tilgang til serveren for forespørsler.

Kjør denne kommandoen for å lage et nytt Rust-prosjekt med Lastepakkeansvarlig:

instagram viewer
last ny min-app

Når du oppretter et nytt Rust-prosjekt, legger Cargo til cargo.toml filen til rotkatalogen til prosjektet ditt. Åpne cargo.toml fil og legg Actix-kassen til avhengigheter seksjon slik:

[avhengigheter]
actix-web = "4.3.1"

Slik kan du sette opp en enkel server i Rust med Actix-kassen:

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

// Importer nødvendige avhengigheter fra Actix Web-rammeverk

#[få("/")]
asynkronfnHallo() -> impl Svar {
// Definer en behandlerfunksjon for GET-forespørsler til rotbanen ("/")
// Funksjonen returnerer en type som implementerer Responder-egenskapen

HttpResponse::Ok().kropp("Hei Verden!")
// Returner et HTTP-svar med en statuskode på 200 (OK)
// og en svartekst av "Hello, World!"
}

#[actix_web:: main]
asynkronfnhoved-() -> std:: io::Resultat {
// Inngangspunkt for applikasjonen

HttpServer:: new(|| {
// Opprett en ny forekomst av HttpServer

App:: new().service (hei)
// Opprett en ny forekomst av appen og registrer hei-funksjonen

}).binde("127.0.0.1:8080")?.løpe().avvente
// Bind serveren til IP-adressen og porten
// Start serveren og vent på at den er ferdig
}

Programmet setter opp en grunnleggende HTTP Web Server med Actix. De Hallo funksjon er en behandlerfunksjon som svarer på GET-forespørsler på port 8080 med "Hei, verden!".

De hoved- funksjonen setter opp en serverforekomst med HttpServer:: ny funksjon og binder serveren til å kjøre på lokal vertsadresse 127.0.0.1:8080.

Nå, utfør lastekjøring kommando for å kjøre webserveren. Her er resultatet av å åpne adressen i en nettleser.

Skrive en dockerfil for rustappen din

For å beholde Rust-appen din med Docker, må du opprette en Dockerfil og definere kommandoene for containeriseringsprosessen.

De Dockerfil har ikke utvidelse; du trenger bare å lage en Dockerfil fil. Du kan også lage en .dockerignore fil for å abstrakte filer i arbeidskatalogen din fra byggeprosessen.

Definere kommandoer i Dockerfilen din

Din Dockerfil vil inneholde kommandoer som henter et basisbilde fra Docker-depotet, setter arbeidskatalogen, kopierer filer, bygg avhengigheter, bygg applikasjonen, lag et minimalt bilde, eksporter porten og kjør applikasjon.

# Bruk den nyeste versjonen av Rust-grunnbildet
FRA rust: siste

# Sett arbeidskatalogen i beholderen til /my
WORKDIR /usr/src/my-app

# Kopier Rust-prosjektfilene til arbeidskatalogen
KOPIERE. .

# Bygg Rust-appen
LØPE lastebygging

# Still inn kommandoen for å kjøre Rust-appen
CMD lastekjøring

Etter å ha definert de nødvendige kommandoene for containerisering av appen din, kan du bygge en container med denne kommandoen:

docker build -t my-app .

Kommandoen bygger et Docker-bilde for din min-appen app med taggen min-appen fra gjeldende katalog.

Du kan bruke docker run kommando for å kjøre Docker-bildet.

docker run -p 8080:8080 min-app

De -p 8080:8080 alternativet tilordner vertsmaskinens port 8080 til containerens port 8080. Docker vil videresende trafikken som er rettet til port 8080 på vertsmaskinen til port 8080 i containeren.

Du kan sende forespørsler til containeren via localhost-port 8080 for å ringe webserveren.

Docker Compose muliggjør orkestrering av flere beholdere

Å jobbe med flere containere er en vanlig oppgave når man bygger sofistikerte Docker-applikasjoner. Du kan bruke Docker Compose til å jobbe med flere Docker-beholdere.

Docker Compose gir funksjonalitet for å definere tjenestene som utgjør appen din, spesifisere avhengighetene mellom tjenester, definere miljøvariablene for hver tjeneste, starte, stoppe, starte på nytt, skalere applikasjonens beholdere og annet funksjoner.