Kontajnerujte svoje aplikácie Rust pomocou Docker, aby ste zjednodušili nasadenie a zaistili konzistentnosť v rôznych prostrediach.
Kontajnerizácia ponúka základné výhody z hľadiska prenosnosti, izolácie a efektívnosti. Umožňuje konzistentné nasadenie aplikácií v rôznych prostrediach a zaisťuje bezpečnosť a stabilitu prostredníctvom izolácie aplikácií. Optimalizuje tiež využitie zdrojov, zjednodušuje procesy vývoja a správy a zlepšuje škálovateľnosť.
Kontajnerovanie aplikácií Rust pomocou Docker poskytuje spoľahlivé a efektívne prostriedky na balenie aplikácií a ich závislostí do samostatných a prenosných prostredí. Umožňuje bezproblémové vykonávanie naprieč rôznymi systémami bez obáv o základnú infraštruktúru.
Nastavenie jednoduchého webového servera v Rust s Actix
Môžeš nastaviť jednoduchý webový server v Ruste pomocou Actix a kontajnerizujte svoju aplikáciu pomocou Docker. Odkryjete port, z ktorého budete pristupovať k serveru pre požiadavky.
Spustite tento príkaz na vytvorenie nového projektu Rust s Správca nákladných balíkov:
nákladná nová moja aplikácia
Keď vytvoríte nový projekt Rust, Cargo pridá cargo.toml súbor do koreňového adresára vášho projektu. Otvor cargo.toml súbor a pridajte prepravku Actix do závislosti oddiel takto:
[závislosti]
actix-web = "4.3.1"
Takto môžete nastaviť jednoduchý server v Ruste pomocou prepravky Actix:
použitie actix_web::{get, Aplikácia, HttpResponse, HttpServer, Responder};
// Importujte potrebné závislosti z webového rámca Actix
#[získať("/")]
asyncfnAhoj() -> impl Odpovedač {
// Definovanie funkcie obsluhy pre požiadavky GET do koreňovej cesty ("/")
// Funkcia vráti typ, ktorý implementuje vlastnosť ResponderHttpResponse::Dobre().body("Ahoj Svet!")
// Vráti odpoveď HTTP so stavovým kódom 200 (OK)
// a telo odpovede "Ahoj, svet!"
}#[actix_web:: main]
asyncfnHlavná() -> std:: io::Výsledok {
// Vstupný bod aplikácieHttpServer:: new(|| {
// Vytvorenie novej inštancie HttpServerAplikácia:: new().service (ahoj)
// Vytvorte novú inštanciu aplikácie a zaregistrujte funkciu hello
}).priviazať("127.0.0.1:8080")?.spustiť().čakať
// Spojte server s IP adresou a portom
// Spustite server a počkajte na dokončenie
}
Program nastaví základný HTTP Web Server s Actixom. The Ahoj funkcia je funkcia obsluhy, ktorá odpovedá na požiadavky GET na porte 8080 s "Ahoj, svet!".
The Hlavná funkcia nastaví inštanciu servera s HttpServer:: nový a pripojí server tak, aby bežal na adrese localhost 127.0.0.1:8080.
Teraz vykonajte nákladná jazda príkaz na spustenie webového servera. Tu je výsledok otvorenia adresy vo webovom prehliadači.
Zápis súboru Docker pre vašu aplikáciu Rust
Ak chcete kontajnerizovať svoju aplikáciu Rust pomocou Docker, musíte vytvoriť a Dockerfile a definujte príkazy pre proces kontajnerizácie.
The Dockerfile nemá príponu; stačí vytvoriť a Dockerfile súbor. Môžete tiež vytvoriť a .dockerignore súbor na abstraktné súbory vo vašom pracovnom adresári z procesu zostavovania.
Definovanie príkazov vo vašom súbore Docker
Váš Dockerfile bude obsahovať príkazy, ktoré vytiahnu základný obrázok z úložiska Docker, nastavia pracovný adresár, skopírujú súbory, zostavte závislosti, zostavte aplikáciu, vytvorte minimálny obraz, exportujte port a spustite aplikácie.
# Použite najnovšiu verziu základného obrázka Rust
OD hrdza: najnovšie# Nastavte pracovný adresár v kontajneri na /my
WORKDIR /usr/src/my-app# Skopírujte súbory projektu Rust do pracovného adresára
KOPÍROVAŤ. .# Vytvorte si aplikáciu Rust
RUN stavba nákladu
# Nastavte príkaz na spustenie aplikácie Rust
CMD nákladná jazda
Po definovaní požadovaných príkazov na kontajnerizáciu vašej aplikácie môžete vytvoriť kontajner pomocou tohto príkazu:
docker build -t my-app .
Príkaz vytvorí pre váš obrázok Docker moja aplikácia aplikáciu so značkou moja aplikácia z aktuálneho adresára.
Môžete použiť docker spustiť príkaz na spustenie obrázka Docker.
docker run -p 8080:8080 my-app
The -p 8080:8080 voľba mapuje port 8080 hostiteľského počítača na port 8080 kontajnera. Docker prepošle prenos smerovaný na port 8080 na hostiteľskom počítači na port 8080 v kontajneri.
Požiadavky na kontajner môžete posielať cez port localhost 8080, aby ste zavolali webový server.
Docker Compose umožňuje organizáciu viacerých kontajnerov
Práca s viacerými kontajnermi je prevládajúcou úlohou pri vytváraní sofistikovaných aplikácií Docker. Docker Compose môžete použiť na prácu s viacerými kontajnermi Docker.
Docker Compose poskytuje funkcie na definovanie služieb, ktoré tvoria vašu aplikáciu, špecifikovanie závislostí medzi službami, definovanie premenných prostredia pre každú službu, spustenie, zastavenie, reštartovanie, škálovanie kontajnerov vašej aplikácie a iné funkcie.