Konteneryzuj aplikacje Rust za pomocą platformy Docker, aby uprościć wdrażanie i zapewnić spójność w różnych środowiskach.
Konteneryzacja oferuje istotne korzyści w zakresie przenośności, izolacji i wydajności. Umożliwia spójne wdrażanie aplikacji w różnych środowiskach oraz zapewnia bezpieczeństwo i stabilność dzięki izolacji aplikacji. Optymalizuje również wykorzystanie zasobów, upraszcza procesy programowania i zarządzania oraz zwiększa skalowalność.
Konteneryzacja aplikacji Rust za pomocą Dockera zapewnia niezawodny i wydajny sposób pakowania aplikacji i ich zależności w niezależne i przenośne środowiska. Umożliwia bezproblemową realizację w różnych systemach bez troski o podstawową infrastrukturę.
Konfigurowanie prostego serwera WWW w Rust za pomocą Actix
Możesz skonfigurować prosty serwer WWW w Rust z Actix i konteneryzuj swoją aplikację z Dockerem. Ujawnisz port, z którego uzyskasz dostęp do serwera w celu uzyskania żądań.
Uruchom to polecenie, aby utworzyć nowy projekt Rust z rozszerzeniem Menedżer paczek cargo:
ładunek nowa moja aplikacja
Kiedy tworzysz nowy projekt Rust, Cargo dodaje plik ładunek.toml plik do katalogu głównego projektu. Otworzyć ładunek.toml i dodaj skrzynkę Actix do pliku zależności sekcja w ten sposób:
[zależności]
actix-web = "4.3.1"
Oto jak możesz skonfigurować prosty serwer w Rust ze skrzynką Actix:
używać actix_web::{get, App, HttpResponse, HttpServer, Responder};
// Zaimportuj niezbędne zależności z frameworka Actix Web
#[Dostawać("/")]
asynchronicznyfnWitam() -> implik odpowiadający {
// Zdefiniuj funkcję obsługi dla żądań GET do ścieżki głównej ("/")
// Funkcja zwraca typ, który implementuje cechę ResponderHttpOdpowiedź::OK().ciało("Witaj świecie!")
// Zwróć odpowiedź HTTP z kodem stanu 200 (OK)
// i treść odpowiedzi „Hello, World!”
}#[actix_web:: główny]
asynchronicznyfngłówny() -> std:: io::Wynik {
// Punkt wejścia aplikacjiHttpServer:: nowy(|| {
// Utwórz nową instancję HttpServerAplikacja:: nowa().usługa (cześć)
// Utwórz nową instancję aplikacji i zarejestruj funkcję hello
}).wiązać("127.0.0.1:8080")?.uruchomić().czekać na
// Powiąż serwer z adresem IP i portem
// Uruchom serwer i czekaj na jego zakończenie
}
Program konfiguruje podstawowy serwer WWW HTTP z Actix. The Witam function jest funkcją obsługi, która odpowiada na żądania GET na porcie 8080 z „Witaj, świecie!”.
The główny funkcja konfiguruje instancję serwera z rozszerzeniem HttpServer:: nowy funkcja i wiąże serwer do działania na adresie localhost 127.0.0.1:8080.
Teraz wykonaj bieg ładunków polecenie uruchomienia serwera WWW. Oto wynik otwarcia adresu w przeglądarce internetowej.
Pisanie pliku Docker dla Twojej aplikacji Rust
Aby konteneryzować aplikację Rust za pomocą Dockera, musisz utworzyć plik Plik dokera i zdefiniuj polecenia dla procesu konteneryzacji.
The Plik dokera nie ma rozszerzenia; wystarczy utworzyć Plik dokera plik. Możesz także utworzyć tzw .dockerignore file do plików abstrakcyjnych w katalogu roboczym z procesu kompilacji.
Definiowanie poleceń w pliku Docker
Twój Plik dokera będzie zawierał polecenia, które pobiorą obraz bazowy z repozytorium Dockera, ustawią katalog roboczy, skopiują plik pliki, zbuduj zależności, zbuduj aplikację, utwórz minimalny obraz, wyeksportuj port i uruchom aplikacja.
# Użyj najnowszej wersji podstawowego obrazu Rusta
Z rdza: najnowsza# Ustaw katalog roboczy w kontenerze na /my
KIEROW.ROB /usr/src/my-app# Skopiuj pliki projektu Rust do katalogu roboczego
KOPIUJ. .# Zbuduj aplikację Rust
URUCHOMIĆ budowa ładunku
# Ustaw polecenie, aby uruchomić aplikację Rust
CMD bieg ładunków
Po zdefiniowaniu poleceń wymaganych do konteneryzacji aplikacji możesz zbudować kontener za pomocą tego polecenia:
docker build -t moja-aplikacja .
Polecenie tworzy obraz platformy Docker dla twojego moja-aplikacja aplikacja z tagiem moja-aplikacja z bieżącego katalogu.
Możesz użyć uruchomienie dokera polecenie, aby uruchomić obraz Dockera.
docker run -p 8080:8080 moja-aplikacja
The -p 8080:8080 opcja mapuje port 8080 hosta na port 8080 kontenera. Docker przekieruje ruch skierowany do portu 8080 na maszynie hosta do portu 8080 w kontenerze.
Możesz wysyłać żądania do kontenera przez port localhost 8080, aby wywołać serwer WWW.
Docker Compose umożliwia orkiestrację wielu kontenerów
Praca z wieloma kontenerami jest powszechnym zadaniem podczas tworzenia zaawansowanych aplikacji platformy Docker. Możesz użyć Docker Compose do pracy z wieloma kontenerami Docker.
Docker Compose zapewnia funkcjonalność do definiowania usług składających się na Twoją aplikację, określania zależności między usługami, definiowanie zmiennych środowiskowych dla każdej usługi, uruchamianie, zatrzymywanie, ponowne uruchamianie, skalowanie kontenerów aplikacji i inne funkcjonalności.