Dağıtımı basitleştirmek ve çeşitli ortamlarda tutarlılık sağlamak için Rust uygulamalarınızı Docker ile kapsayıcıya alın.

Konteynerleştirme, taşınabilirlik, yalıtım ve verimlilik açısından önemli avantajlar sunar. Uygulamaların çeşitli ortamlarda tutarlı bir şekilde devreye alınmasını sağlar ve uygulama izolasyonu yoluyla güvenlik ve kararlılık sağlar. Ayrıca kaynak kullanımını optimize eder, geliştirme ve yönetim süreçlerini basitleştirir ve ölçeklenebilirliği artırır.

Rust uygulamalarını Docker ile konteynerleştirme, uygulamaları ve bağımlılıklarını bağımsız ve taşınabilir ortamlara paketlemek için güvenilir ve verimli bir yol sağlar. Altta yatan altyapı endişesi olmadan çeşitli sistemlerde sorunsuz yürütmeye olanak tanır.

Actix İle Rust'ta Basit Bir Web Sunucusu Kurma

Yapabilirsiniz Rust'ta basit bir web sunucusu kurun Actix ile ve uygulamanızı Docker ile kapsayıcı hale getirin. İstekler için sunucuya erişeceğiniz bir bağlantı noktası açacaksınız.

ile yeni bir Rust projesi oluşturmak için bu komutu çalıştırın. kargo paketi yöneticisi:

instagram viewer
kargo yeni uygulamam

Yeni bir Rust projesi oluşturduğunuzda Cargo, kargo.toml dosyasını projenizin kök dizinine kopyalayın. Aç kargo.toml dosyasını açın ve Actix kasasını şuraya ekleyin: bağımlılıklar bölüm şu şekilde:

[bağımlılıklar]
actix-web = "4.3.1"

Actix kasasıyla Rust'ta basit bir sunucuyu şu şekilde kurabilirsiniz:

kullanmak actix_web::{al, Uygulama, HttpResponse, HttpServer, Yanıtlayıcı};

// Actix Web çerçevesinden gerekli bağımlılıkları içe aktarın

#[elde etmek("/")]
zaman uyumsuzfnMerhaba() -> ima yanıtlayan {
// Kök yoluna ("/") GET istekleri için bir işleyici işlevi tanımlayın
// İşlev, Yanıtlayıcı özelliğini uygulayan bir tür döndürür

HttpResponse::Tamam().vücut("Selam Dünya!")
// Durum kodu 200 (Tamam) olan bir HTTP yanıtı döndürün
// ve "Merhaba Dünya!" yanıt gövdesi
}

#[actix_web:: ana]
zaman uyumsuzfnana() -> std:: io::Sonuç {
// Uygulamanın giriş noktası

HttpSunucusu:: yeni(|| {
// HttpServer'ın yeni bir örneğini oluşturun

Uygulama:: new().service (merhaba)
// Uygulamanın yeni bir örneğini oluşturun ve merhaba işlevini kaydedin

}).bağlama("127.0.0.1:8080")?.koşmak().beklemek
// Sunucuyu IP adresine ve bağlantı noktasına bağlayın
// Sunucuyu başlatın ve tamamlanmasını bekleyin
}

Program, Actix ile temel bir HTTP Web Sunucusu kurar. bu Merhaba işlev, bağlantı noktasındaki GET isteklerine yanıt veren bir işleyici işlevidir 8080 "Merhaba Dünya!" ile.

bu ana işlevi ile bir sunucu örneği kurar. Http Sunucusu:: yeni işlevi ve sunucuyu localhost adresinde çalışacak şekilde bağlar 127.0.0.1:8080.

Şimdi, yürütün kargo koşusu web sunucusunu çalıştırmak için komut. İşte adresi bir web tarayıcısında açmanın sonucu.

Rust Uygulamanız için Dockerfile Yazma

Rust uygulamanızı Docker ile kapsayıcı hale getirmek için bir liman işçisi dosyası ve konteynerleştirme işlemi için komutları tanımlayın.

bu liman işçisi dosyası bir uzantısı yok; oluşturmanız yeterlidir liman işçisi dosyası dosya. Ayrıca oluşturabilirsiniz .dockerignore çalışma dizininizdeki dosyaları derleme işleminizden soyutlamak için dosya.

Docker dosyanızda Komutları Tanımlama

Senin liman işçisi dosyası Docker deposundan bir temel görüntü çeken, çalışma dizinini ayarlayan, kopyalayan komutları içerecektir. dosyalar oluşturun, bağımlılıklar oluşturun, uygulamayı oluşturun, minimal bir görüntü oluşturun, bağlantı noktasını dışa aktarın ve başvuru.

# Rust temel görüntüsünün en son sürümünü kullanın
İTİBAREN pas: en son

# Kapsayıcıdaki çalışma dizinini /my olarak ayarla
İŞ YÖNÜ /usr/src/my-app

# Rust proje dosyalarını çalışma dizinine kopyalayın
KOPYALA. .

# Rust uygulamasını oluşturun
KOŞMAK kargo inşa

# Rust uygulamasını çalıştırmak için komutu ayarlayın
CMD kargo koşusu

Uygulamanızı kapsayıcı hale getirmek için gerekli komutları tanımladıktan sonra, şu komutla bir kapsayıcı oluşturabilirsiniz:

docker build -t uygulamam.

Komut, sizin için bir Docker görüntüsü oluşturur. uygulamam etiketli uygulama uygulamam geçerli dizinden.

kullanabilirsiniz liman işçisi koşusu Docker görüntünüzü çalıştırmak için komut.

docker run -p 8080:8080 uygulamam

bu -p 8080:8080 seçeneği, ana makinenin 8080 bağlantı noktasını konteynerin 8080 bağlantı noktasına eşler. Docker, ana makinede 8080 numaralı bağlantı noktasına yönlendirilen trafiği kapsayıcıdaki 8080 numaralı bağlantı noktasına iletecektir.

Web sunucusunu çağırmak için localhost port 8080 aracılığıyla konteynere istek gönderebilirsiniz.

Docker Compose, Çoklu Kapsayıcı Orkestrasyonunu Sağlar

Gelişmiş Docker uygulamaları oluştururken birden çok kapsayıcıyla çalışmak yaygın bir görevdir. Birden çok Docker kapsayıcısı ile çalışmak için Docker Compose'u kullanabilirsiniz.

Docker Compose, uygulamanızı oluşturan hizmetleri tanımlama, hizmetler arasındaki bağımlılıkları belirleme, her hizmet için ortam değişkenlerini tanımlama, başlatma, durdurma, yeniden başlatma, uygulamanızın kapsayıcılarını ölçeklendirme ve diğer işlevler.