Hogyan állíthat be folyamatos telepítést otthoni projektjében a egyszerű módon

A folyamatos telepítés gyönyörű dolog. Elbűvölő a projekt elkötelezettsége, és azt látni, hogy épül és kiépül anélkül, hogy bármit is kellene tennie.

Ebben a cikkben szeretném megmutatni, hogyan lehet ezt könnyedén megvalósítani az otthoni projektben.

Ennek tisztázása érdekében íme egy folyamatábra, amely bemutatja a különbségeket a folyamatos kézbesítés és a folyamatos telepítés között.

Mivel legtöbbször rajtad kívül senki nem függ az otthoni projektjétől, folytonos telepítéssel rendelkező munkafolyamatot folytatunk, mivel szeretné, ha a változtatásokat azonnal telepítenék. Ha nem ez a helyzet, később módosíthatja a munkafolyamatot.

Megtudhatja a következőket:

  • Hogyan készítsünk Dockerfile-t
  • Hogyan továbbíthatja projektjét a GitHub-ra
  • A dokkoló képének automatikus építése a Docker Hubon
  • A kép automatikus letöltése és futtatása az Őrtorony segítségével

Előfeltételek:

  • Némi ismeret a Dockerről és a Dockerfile-ról, bár néhányat útközben elmagyarázok
  • Telepítse a git programot
  • Docker Hub-fiók
  • Dockert futtató (fizikai vagy virtuális) (Linux) szerver

Hivatkozásképpen: ez a példa a GitHub-tárházra, és ez a példa a dokkoló hub-tárára, amelyet használni fogok.

Így ez az oktatóanyag csak akkor lesz hasznos, ha a szoftvert a Dockerrel kívánja futtatni (amit ajánlok, mivel a Docker fantasztikus).

Miért érdemes használni a Dockert?

A Docker lehetővé teszi, hogy ugyanazt a környezetet biztosítsa a fejlesztéshez és a gyártáshoz, amely kiküszöböli a Heisenbugokat és a "ez a gépemen működik" problémát. A konténerek el vannak különítve, ami biztonsági előnyöket jelent számunkra.

Van még ennél több, de ez a két előny arra készteti, hogy mindig a Docker konténerekben szállítsam a szoftveremet.

A Dockerfájl beállítása

Először készítünk egy Docker fájlt a projekthez. Ezt a speciális fájlt kiterjesztés nélkül mindig „Dockerfile” -nek hívják, és a projekt felső könyvtárában található.

A Dockerfile azzal a FROMkijelentéssel kezdődik, amely megmondja Dockernek, hogy melyik alapképpel szeretne kezdeni. Ezt úgy képzelheti el, hogy olyan vásznat használ, amelynek háttere már meg van rajzolva, és csak a központi rész (a program) hiányzik.

A legtöbbször a letölteni kívánt kép a programozási nyelv alapképe, amelyet a fent említett Docker Hubon talál.

Ezután a COPY..paranccsal átmásoljuk a projektfájljainkat a dokkolóba . Mit csinál ez?

Elveszi a fájlokat az első könyvtárból (a pont a fájl aktuális könyvtárára utal, amely tartalmazza az összes projektfájlt), és a Docker-tároló aktuális könyvtárába helyezi (ne feledje, hogy a dokkoló-tároló saját operációs rendszer). A fájlok most ott vannak az alap könyvtárban, amelyet érdemes megváltoztatni.

Ezután telepítenünk kell a függőségeket, amelyeket használni fogok python pip, de a választott nyelvtől függően bármely hasonló csomagkezelő rendszer megteszi. A legfontosabb dolog, amit itt meg kell tanulni, hogy hogyan lehet végrehajtani a parancsokat a tárolóban a RUN segítségével.

From python:3.7COPY . .RUN pip install -r requirements.txt

Könnyű, nem igaz? Most a tárolóban kell elindítanunk a programunkat.

CMD ["python", "./my_script.py"]

A CMD utasítás egyedi. Minden Dockerfile-nek meg kell adnia az utolsó sorát, mert elindítja az elsődleges folyamatot a tárolóban.

Befejezte a Dockerfile-t! Mostantól manuálisan elkészítheti a képet és a tárolót, de ezt egyelőre kihagyjuk.

Most létrehozzuk az adattárunkat a GitHub-on, de ne felejtsük el bejelölni az „Inicializáld ezt az adattárat egy README-vel” lehetőséget.

Ezután át kell másolnia a távoli URL-t.

Nyissa meg a cmd / shell parancsot a projekt gyökérkönyvtárában.

Inicializálnia kell a git adattárat, hozzá kell adnia a fájlokat, konfigurálnia kell a távvezérlőt, el kell végeznie a fájlokat, és a projektet a GitHub-ra kell tolnia.

git initgit add *git remote add origin //github.com//.gitgit commit -a -m "Make Dockerfile ready for CD"git push -u origin master

A GitHub-tárháznak így kell kinéznie:

Gratulálunk, nagyjából félúton vagy!

A következő lépés a GitHub és a Docker Hub összekapcsolása. Ehhez lépjen a fiókbeállításokhoz.

Görgessen lefelé, és csatlakoztassa a git gazdagépet.

Hozza létre most a tárolót a docker hubon.

Adjon nevet a repónak, és kattintson a GitHub ikonra (vagy a Bitbucketre, ha ez a dolga). Most válassza ki a szervezetét (általában a felhasználónevét) és a projekt nevét. Ha a fő képét szeretné használni az összeállításhoz, és mindig a legfrissebbre szeretne törekedni, akkor kattintson a „Létrehozás és felépítés” gombra, és megnézheti, hogy a kép épül-e Önnek. Ellenkező esetben szerkesztenie kell a build beállításait.

Utolsó lépések! Most őrtoronyra van szüksége a célgépén.

Az Őrtorony egy olyan program, amely behúzza a futó dokkoló képeit, és ellenőrzi a frissítéseket. Ha van frissítés, akkor kecsesen kikapcsolja az eredeti tárolót, és az új képből tárolót hoz létre ugyanazokkal a beállításokkal.

A legjobb az, hogy az Őrtornyot a Dockerrel is telepíthetjük!

Írja be a következőket a termináljába:

docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock v2tec/watchtower

Ezután futtatnia kell a Docker konténert a projektjéhez!

docker run -d --name  /

A „-d” opció a programot a háttérben futtatja, így a program nem áll le, ha bezárja a terminált.

Összefoglalva: ha elkötelezi magát a GitHub-adattár iránt, a Docker hub automatikusan létrehoz egy Docker-képet az Ön számára. Ezt a képet ezután a WatchTower húzza meg, és minden eredeti opcióval futtatható.

Ha bármikor segítségre van szüksége, ne féljen kérdezni, szívesen segítek.

Ha ez technikai probléma, akkor a GitHub projekt egy kérdése félelmetes lenne!

De mi van a tesztekkel?

Jó kérdés!

A Travis CI segítségével egyszerre futtathatja tesztjeit.

Itt olvashat erről, de a lényege az, hogy hozzáad egy másik fájlt az adattárához, amelyben utasítások találhatók egy külső szerver számára az egység tesztek végrehajtására, vagy bármilyen más utasítás.

De mi van, ha csak akkor szeretném, ha a dokkoló képem felépülne, ha a tesztek sikeresek lennének?

Ez kissé megtöri a munkafolyamatunkat.

Most már nem támaszkodhatunk a dokkoló központra a képek elkészítéséhez. Ehelyett a Travis CI lesz, amely előállítja a képet, majd a Docker Hub adattárába tolja. Itt olvashat erről.