Контейнеризирайте вашите Rust приложения с Docker, за да опростите внедряването и да осигурите последователност в различни среди.

Контейнеризацията предлага съществени предимства по отношение на преносимост, изолация и ефективност. Той позволява последователно внедряване на приложения в различни среди и гарантира сигурност и стабилност чрез изолиране на приложения. Той също така оптимизира използването на ресурсите, опростява процесите на разработка и управление и подобрява скалируемостта.

Контейнерирането на приложения на Rust с Docker осигурява надеждно и ефективно средство за опаковане на приложения и техните зависимости в самостоятелни и преносими среди. Той позволява безпроблемно изпълнение в различни системи, без да се притеснявате за основната инфраструктура.

Настройване на прост уеб сървър в Rust с Actix

Можеш настройте прост уеб сървър в Rust с Actix и контейнеризирайте приложението си с Docker. Ще изложите порт, откъдето ще имате достъп до сървъра за заявки.

Изпълнете тази команда, за да създадете нов проект на Rust с Мениджър на товарни пакети:

instagram viewer
карго ново мое приложение

Когато създавате нов проект Rust, Cargo добавя cargo.toml файл в основната директория на вашия проект. Отвори cargo.toml файл и добавете кутията Actix към зависимости раздел, както следва:

[зависимости]
actix-web = "4.3.1"

Ето как можете да настроите прост сървър в Rust с кутията Actix:

използване actix_web::{get, App, HttpResponse, HttpServer, Responder};

// Импортирайте необходимите зависимости от уеб рамката на Actix

#[получи("/")]
асинхроненfnЗдравейте() -> импл Отговарящ {
// Дефиниране на манипулираща функция за GET заявки към основния път ("/")
// Функцията връща тип, който имплементира характеристиката Responder

HttpResponse::Добре().body("Здравей свят!")
// Връщане на HTTP отговор с код на състоянието 200 (ОК)
// и тяло на отговора "Hello, World!"
}

#[actix_web:: main]
асинхроненfnосновен() -> std:: io::Резултат {
// Входна точка на приложението

HttpServer:: нов(|| {
// Създайте нов екземпляр на HttpServer

App:: new().service (здравей)
// Създайте нов екземпляр на приложението и регистрирайте функцията hello

}).свързване("127.0.0.1:8080")?.run().изчакайте
// Свържете сървъра с IP адреса и порта
// Стартирайте сървъра и изчакайте завършването му
}

Програмата настройва основен HTTP уеб сървър с Actix. The Здравейте е манипулираща функция, която отговаря на GET заявки на порт 8080 с "Здравей, свят!".

The основен функцията настройва екземпляр на сървър с HttpServer:: нов функция и обвързва сървъра да работи на адрес на локален хост 127.0.0.1:8080.

Сега изпълнете товарен пробег команда за стартиране на уеб сървъра. Ето резултата от отварянето на адреса в уеб браузър.

Писане на Docker файл за вашето приложение Rust

За да контейнеризирате вашето приложение Rust с Docker, трябва да създадете a Докер файл и дефинирайте командите за процеса на контейнеризация.

The Докер файл няма разширение; трябва само да създадете a Докер файл файл. Можете също да създадете a .dockerignore файл, за да абстрахирате файловете във вашата работна директория от процеса на изграждане.

Дефиниране на команди във вашия Docker файл

Вашият Докер файл ще съдържа команди, които изтеглят базово изображение от хранилището на Docker, задават работната директория, копират файлове, изграждане на зависимости, изграждане на приложението, създаване на минимално изображение, експортиране на порта и стартиране на приложение.

# Използвайте най-новата версия на базовото изображение на Rust
ОТ ръжда: последно

# Задайте работната директория в контейнера на /my
WORKDIR /usr/src/my-app

# Копирайте файловете на проекта Rust в работната директория
КОПИЕ. .

# Създайте приложението Rust
БЯГАЙТЕ товарна конструкция

# Задайте командата за стартиране на приложението Rust
CMD товарен пробег

След като дефинирате необходимите команди за контейнеризиране на вашето приложение, можете да изградите контейнер с тази команда:

docker build -t my-app.

Командата изгражда Docker изображение за вашия моето приложение приложение с етикета моето приложение от текущата директория.

Можете да използвате докер изпълнение команда за стартиране на вашия Docker образ.

docker run -p 8080:8080 my-app

The -p 8080:8080 опция преобразува порта 8080 на хост машината към порта 8080 на контейнера. Docker ще препрати трафика, насочен към порт 8080 на хост машината към порт 8080 в контейнера.

Можете да изпращате заявки към контейнера през localhost порт 8080, за да извикате уеб сървъра.

Docker Compose позволява оркестрация на множество контейнери

Работата с множество контейнери е преобладаваща задача при изграждането на сложни Docker приложения. Можете да използвате Docker Compose за работа с множество Docker контейнери.

Docker Compose предоставя функционалност за дефиниране на услугите, които съставляват вашето приложение, уточнявайки зависимостите между услугите, дефиниране на променливите на средата за всяка услуга, стартиране, спиране, рестартиране, мащабиране на контейнерите на вашето приложение и други функционалности.