Kontejnerite svoje aplikacije Rust z Dockerjem, da poenostavite uvajanje in zagotovite doslednost v različnih okoljih.

Kontejnerizacija nudi bistvene prednosti v smislu prenosljivosti, izolacije in učinkovitosti. Omogoča dosledno uvajanje aplikacij v različnih okoljih ter zagotavlja varnost in stabilnost z izolacijo aplikacij. Prav tako optimizira uporabo virov, poenostavi procese razvoja in upravljanja ter izboljša razširljivost.

Kontejneriziranje aplikacij Rust z Dockerjem zagotavlja zanesljivo in učinkovito sredstvo za pakiranje aplikacij in njihovih odvisnosti v samostojna in prenosna okolja. Omogoča brezhibno izvajanje v različnih sistemih brez skrbi za osnovno infrastrukturo.

Nastavitev preprostega spletnega strežnika v Rust z Actixom

Ti lahko nastavite preprost spletni strežnik v Rustu z Actixom in zapakirajte svojo aplikacijo z Dockerjem. Izpostavili boste vrata, od koder boste dostopali do strežnika za zahteve.

Zaženite ta ukaz, da ustvarite nov projekt Rust z Upravitelj tovornega paketa:

instagram viewer
cargo nova moja aplikacija

Ko ustvarite nov projekt Rust, Cargo doda tovor.toml datoteko v korenski imenik vašega projekta. Odprite tovor.toml datoteko in dodajte zaboj Actix v odvisnosti razdelek takole:

[odvisnosti]
actix-web = "4.3.1"

Tukaj je opisano, kako lahko nastavite preprost strežnik v Rust z zabojem Actix:

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

// Uvoz potrebnih odvisnosti iz spletnega ogrodja Actix

#[dobi("/")]
asinhfnzdravo() -> impl odgovor {
// Definirajte funkcijo obravnave za zahteve GET do korenske poti ("/")
// Funkcija vrne tip, ki implementira lastnost odzivnika

HttpResponse::V redu().body("Pozdravljen, svet!")
// Vrni odgovor HTTP s statusno kodo 200 (OK)
// in telo odgovora "Hello, World!"
}

#[actix_web:: main]
asinhfnglavni() -> std:: io::Rezultat {
// Vstopna točka aplikacije

HttpServer:: novo(|| {
// Ustvari nov primerek strežnika HttpServer

App:: new().service (pozdravljeni)
// Ustvarite nov primerek aplikacije in registrirajte funkcijo hello

}).bind("127.0.0.1:8080")?.run().čakati
// Povežite strežnik z naslovom IP in vrati
// Zaženite strežnik in počakajte na njegov zaključek
}

Program nastavi osnovni spletni strežnik HTTP z Actixom. The zdravo funkcija je funkcija obdelovalca, ki se odziva na zahteve GET na vratih 8080 z "Pozdravljen, svet!".

The glavni nastavi primerek strežnika z HttpServer:: novo funkcijo in veže strežnik za delovanje na naslovu lokalnega gostitelja 127.0.0.1:8080.

Zdaj pa izvedite vožnja tovora ukaz za zagon spletnega strežnika. Tukaj je rezultat odpiranja naslova v spletnem brskalniku.

Pisanje datoteke Docker za vašo aplikacijo Rust

Če želite svojo aplikacijo Rust pretvoriti v vsebnike z Dockerjem, morate ustvariti Dockerfile in definirajte ukaze za proces kontejnerizacije.

The Dockerfile nima podaljška; ustvariti morate le a Dockerfile mapa. Ustvarite lahko tudi a .dockerignore datoteko za povzetek datotek v vašem delovnem imeniku iz vašega procesa gradnje.

Definiranje ukazov v vaši datoteki Docker

Vaš Dockerfile bo vseboval ukaze, ki povlečejo osnovno sliko iz repozitorija Docker, nastavijo delovni imenik, kopirajo datoteke, zgradite odvisnosti, zgradite aplikacijo, ustvarite minimalno sliko, izvozite vrata in zaženite aplikacija.

# Uporabite najnovejšo različico osnovne slike Rust
OD rja: najnovejši

# Nastavite delovni imenik v vsebniku na /my
DELOVNI DIR /usr/src/my-app

# Kopirajte datoteke projekta Rust v delovni imenik
KOPIRATI. .

# Zgradite aplikacijo Rust
TECI tovorna gradnja

# Nastavite ukaz za zagon aplikacije Rust
CMD vožnja tovora

Ko definirate zahtevane ukaze za kontejneriziranje vaše aplikacije, lahko zgradite vsebnik s tem ukazom:

docker build -t my-app.

Ukaz zgradi sliko Docker za vašo moja aplikacija aplikacija z oznako moja aplikacija iz trenutnega imenika.

Lahko uporabite docker run ukaz za zagon vaše slike Docker.

docker run -p 8080:8080 moja aplikacija

The -p 8080:8080 možnost preslika vrata 8080 gostiteljskega računalnika v vrata 8080 vsebnika. Docker bo posredoval promet, usmerjen na vrata 8080 na gostiteljskem računalniku, na vrata 8080 v vsebniku.

Vsebniku lahko pošljete zahteve prek vrat lokalnega gostitelja 8080, da pokličete spletni strežnik.

Docker Compose omogoča orkestracijo več vsebnikov

Delo z več vsebniki je prevladujoča naloga pri gradnji sofisticiranih aplikacij Docker. Docker Compose lahko uporabite za delo z več vsebniki Docker.

Docker Compose ponuja funkcionalnost za definiranje storitev, ki sestavljajo vašo aplikacijo, določanje odvisnosti med storitvami, definiranje spremenljivk okolja za vsako storitev, zagon, zaustavitev, ponovni zagon, skaliranje vsebnikov vaše aplikacije in drugo funkcionalnosti.