Tárolja Rust alkalmazásait a Dockerrel, hogy leegyszerűsítse a telepítést és biztosítsa a konzisztenciát a különböző környezetekben.

A konténerezés alapvető előnyöket kínál a hordozhatóság, az elszigeteltség és a hatékonyság tekintetében. Lehetővé teszi az alkalmazások konzisztens telepítését különböző környezetekben, és biztosítja a biztonságot és a stabilitást az alkalmazások elkülönítése révén. Emellett optimalizálja az erőforrás-kihasználást, leegyszerűsíti a fejlesztési és felügyeleti folyamatokat, valamint javítja a méretezhetőséget.

A Rust alkalmazások Dockerrel való konténerbe helyezése megbízható és hatékony eszközt kínál az alkalmazások és azok függőségeik önálló és hordozható környezetekbe történő csomagolására. Lehetővé teszi a zökkenőmentes végrehajtást a különböző rendszerek között, anélkül, hogy a mögöttes infrastruktúrával kellene foglalkozni.

Egyszerű webszerver beállítása Rustban az Actix segítségével

tudsz állítson be egy egyszerű webszervert a Rustban az Actix segítségével, és konténerbe helyezze az alkalmazást a Dockerrel. Megjelenik egy port, ahonnan elérheti a szervert a kérésekhez.

instagram viewer

Futtassa ezt a parancsot új Rust projekt létrehozásához a Rakománycsomag menedzser:

rakomány új my-app

Amikor új Rust projektet hoz létre, a Cargo hozzáadja a rakomány.toml fájlt a projekt gyökérkönyvtárába. Nyissa meg a rakomány.toml fájlt, és adja hozzá az Actix ládát a függőségek szakasz így:

[függőségek]
actix-web = "4.3.1"

Így állíthat be egy egyszerű szervert Rustban az Actix ládával:

használat actix_web::{get, App, HttpResponse, HttpServer, Responder};

// A szükséges függőségek importálása az Actix Web keretrendszerből

#[kap("/")]
asyncfnHelló() -> impl Válasz {
// Kezelőfüggvény meghatározása a gyökérútvonalhoz ("/") érkező GET kérésekhez
// A függvény egy olyan típust ad vissza, amely megvalósítja a válaszadó tulajdonságot

HttpResponse::Rendben().test("Helló Világ!")
// HTTP-válasz visszaadása 200-as állapotkóddal (OK)
// és egy választörzs a "Hello, World!"
}

#[actix_web:: fő]
asyncfnfő-() -> std:: io::Eredmény {
// Az alkalmazás belépési pontja

HttpServer:: new(|| {
// A HttpServer új példányának létrehozása

App:: new().service (hello)
// Hozzon létre egy új alkalmazást, és regisztrálja a hello funkciót

}).bind("127.0.0.1:8080")?.fuss().várja
// Kösd össze a szervert az IP-címmel és a porttal
// Indítsa el a szervert, és várja meg a befejezését
}

A program beállít egy alapvető HTTP webszervert az Actix segítségével. A Helló A függvény egy kezelő függvény, amely válaszol a porton lévő GET kérésekre 8080 a "Hello, World!" felirattal.

A fő- függvény beállít egy kiszolgálópéldányt a HttpServer:: új függvényt, és leköti a szervert, hogy a localhost címen fusson 127.0.0.1:8080.

Most hajtsa végre a rakományfuttatás parancs a webszerver futtatásához. Íme a cím webböngészőben való megnyitásának eredménye.

Dockerfile írása a Rust alkalmazáshoz

A Rust alkalmazás Dockerrel való tárolásához létre kell hoznia a Dockerfile és adja meg a konténerezési folyamat parancsait.

A Dockerfile nincs kiterjesztése; csak létre kell hoznia a Dockerfile fájlt. Létrehozhat egy .docker figyelmen kívül hagyni fájlt a munkakönyvtárban lévő fájlok kivonatához az összeállítási folyamatból.

Parancsok meghatározása a Docker-fájlban

A te Dockerfile olyan parancsokat fog tartalmazni, amelyek előhívnak egy alapképet a Docker tárolóból, beállítják a munkakönyvtárat, másolják a fájlok létrehozása, függőségek létrehozása, alkalmazás létrehozása, minimális lemezkép létrehozása, a port exportálása és futtatása Alkalmazás.

# Használja a Rust alapkép legújabb verzióját
TÓL TŐL rozsda: legújabb

# Állítsa a tároló munkakönyvtárát a /my értékre
WORKDIR /usr/src/my-app

# Másolja a Rust projekt fájljait a munkakönyvtárba
MÁSOLAT. .

# Építsd meg a Rust alkalmazást
FUSS rakományépítés

# Állítsa be a parancsot a Rust alkalmazás futtatásához
CMD rakományfuttatás

Miután meghatározta az alkalmazás konténerbe helyezéséhez szükséges parancsokat, létrehozhat egy tárolót ezzel a paranccsal:

docker build -t my-app .

A parancs létrehoz egy Docker-képet az Ön számára my-app alkalmazást a címkével my-app az aktuális könyvtárból.

Használhatja a dokkolófuttatás parancsot a Docker-kép futtatásához.

docker run -p 8080:8080 my-app

A -p 8080:8080 Az opció leképezi a gazdagép 8080-as portját a tároló 8080-as portjára. A Docker a gazdagép 8080-as portjára irányított forgalmat a tároló 8080-as portjára továbbítja.

Kéréseket küldhet a tárolónak a 8080-as localhost porton keresztül a webszerver hívásához.

A Docker Compose lehetővé teszi a többtárolós hangszerelést

Kifinomult Docker-alkalmazások építése során gyakori feladat a több tárolóval való munkavégzés. A Docker Compose segítségével több Docker-tárolóval is dolgozhat.

A Docker Compose funkcionalitást biztosít az alkalmazást alkotó szolgáltatások meghatározásához, a szolgáltatások közötti függőségek meghatározásához, környezeti változók meghatározása az egyes szolgáltatásokhoz, indítás, leállítás, újraindítás, az alkalmazás tárolóinak skálázása és egyéb funkciókat.