Контејнерујте своје Руст апликације помоћу Доцкер-а да бисте поједноставили примену и обезбедили доследност у различитим окружењима.
Контејнеризација нуди суштинске предности у смислу преносивости, изолације и ефикасности. Омогућава доследно примену апликација у различитим окружењима и обезбеђује сигурност и стабилност кроз изолацију апликација. Такође оптимизује коришћење ресурса, поједностављује процесе развоја и управљања и побољшава скалабилност.
Контејнерисање Руст апликација помоћу Доцкер-а пружа поуздано и ефикасно средство за паковање апликација и њихових зависности у самостална и преносива окружења. Омогућава беспрекорно извршавање у различитим системима без бриге за основну инфраструктуру.
Подешавање једноставног веб сервера у Русту помоћу Ацтик-а
Можете поставите једноставан веб сервер у Русту са Ацтик-ом и контејнеризујте своју апликацију помоћу Доцкер-а. Открићете порт одакле ћете приступити серверу за захтеве.
Покрените ову команду да бисте креирали нови Руст пројекат са Менаџер карго пакета:
царго нова моја апликација
Када креирате нови Руст пројекат, Царго додаје царго.томл датотеку у основни директоријум вашег пројекта. Отвори царго.томл датотеку и додајте Ацтик сандук у зависности одељак овако:
[зависности]
ацтик-веб = "4.3.1"
Ево како можете да подесите једноставан сервер у Русту са Ацтик сандуком:
користити ацтик_веб::{гет, Апп, ХттпРеспонсе, ХттпСервер, Респондер};
// Увезите неопходне зависности из Ацтик Веб фрамеворк-а
#[добити("/")]
асинцфнЗдраво() -> импл Одговори {
// Дефинишите функцију руковаоца за ГЕТ захтеве до коренске путање ("/")
// Функција враћа тип који имплементира особину РеспондерХттпРеспонсе::Ок().тело("Здраво Свете!")
// Врати ХТТП одговор са статусним кодом 200 (ОК)
// и тело одговора "Здраво, свет!"
}#[ацтик_веб:: маин]
асинцфнглавни() -> стд:: ио::Резултат {
// Улазна тачка апликацијеХттпСервер:: нев(|| {
// Креирајте нову инстанцу ХттпСервераАпп:: нев().сервице (здраво)
// Креирајте нову инстанцу апликације и региструјте функцију хелло
}).бинд("127.0.0.1:8080")?.трцати().чекати
// Повежите сервер са ИП адресом и портом
// Покрени сервер и сачекај да се заврши
}
Програм поставља основни ХТТП веб сервер са Ацтик-ом. Тхе Здраво функција је функција руковања која одговара на ГЕТ захтеве на порту 8080 са "Здраво, свет!".
Тхе главни функција поставља инстанцу сервера са ХттпСервер:: ново функцију и везује сервер да ради на адреси локалног хоста 127.0.0.1:8080.
Сада, извршите царго рун команду за покретање веб сервера. Ево резултата отварања адресе у веб претраживачу.
Писање Доцкерфиле-а за вашу Руст апликацију
Да бисте своју Руст апликацију спремили у контејнер помоћу Доцкер-а, морате да креирате а Доцкерфиле и дефинише команде за процес контејнеризације.
Тхе Доцкерфиле нема екстензију; потребно је само да креирате а Доцкерфиле фајл. Такође можете креирати а .доцкеригноре фајл у апстрактне датотеке у вашем радном директоријуму из вашег процеса изградње.
Дефинисање команди у вашем Доцкерфиле-у
Твоје Доцкерфиле ће садржати команде које извлаче основну слику из Доцкер спремишта, постављају радни директоријум, копирају датотеке, направите зависности, направите апликацију, направите минималну слику, извезите порт и покрените апликација.
# Користите најновију верзију Руст основне слике
ИЗ рђа: најновије# Подесите радни директоријум у контејнеру на /ми
ВОРКДИР /usr/src/my-app# Копирајте датотеке пројекта Руст у радни директоријум
ЦОПИ. .# Направите Руст апликацију
ТРЦАТИ царго буилд
# Подесите команду за покретање апликације Руст
ЦМД царго рун
Након што дефинишете потребне команде за контејнеризацију ваше апликације, можете да направите контејнер са овом командом:
доцкер буилд -т моја-апликација.
Команда прави Доцкер слику за ваш моја апликација апликација са ознаком моја апликација из тренутног директоријума.
Можете користити доцкер рун команду за покретање Доцкер слике.
доцкер рун -п 8080:8080 моја апликација
Тхе -п 8080:8080 опција мапира порт 8080 хост машине у порт 8080 контејнера. Доцкер ће проследити саобраћај усмерен ка порту 8080 на главној машини на порт 8080 у контејнеру.
Можете да пошаљете захтеве контејнеру преко порта локалног хоста 8080 да бисте позвали веб сервер.
Доцкер Цомпосе омогућава оркестрацију са више контејнера
Рад са више контејнера је најчешћи задатак када се праве софистициране Доцкер апликације. Можете да користите Доцкер Цомпосе за рад са више Доцкер контејнера.
Доцкер Цомпосе пружа функционалност за дефинисање услуга које чине вашу апликацију, наводећи зависности између услуга, дефинисање променљивих окружења за сваку услугу, покретање, заустављање, поновно покретање, скалирање контејнера ваше апликације и друго функционалности.