Deploy GIT aplikácie
Súčasťou prepojenia webhostingu s GIT aplikáciou je aj jej nasadenie do prevádzky. Deploy skript si umiestnenie určí sám podľa toho, aký document_root má daná doména alebo subdoména.
Ako to funguje?
Podrobný postup umiestnenia aplikácie na web:
- Pri inštalácii GIT aplikácie si vyberáte aj do akej domény alebo subdomény sa má aplikácia nainštalovať. Napríklad ak chcete aplikáciu umiestniť do domény www.example.com, tak sa štandardne začne aplikácia sťahovať do pomocného adresára /example.com/web/release_<aktualny čas>.
- Po stiahnutí kódov z GIT-u môžu nasledovať ďalšie príkazy, ktoré ste si definovali pri vytváraní webhooku GIT aplikácie: napríklad composer install, npm install, npm run production, .....
- Ak všetko prebehne bez chyby, systém považuje aktuálny "build" za správny a nasleduje nasadenie na web. Správna aplikácia sa vždy nalinkuje pomocou symlink s názvom "current", to znamená, že výsledné umiestnenie aplikácie bude na ceste /example.com/web/current/ Ak už takýto symlink existuje, znamená to, že už bola predtým deploynutá aplikácia.
- Nasleduje nasmerovanie symlinku current na aktuálny release adresár, čím sa nasadí web do ostrej prevádzky.
Keďže sa používa na buildovanie aplikácie samostatný adresár, nijako to nezasiahne do funkčnosti webu. Následné použitie symlinku umožní nasadenie rádovo v milisekundách a návštevník webu si prechod na novú verziu vôbec nevšimne.
Udržiavame posledné 3 verzie buildov, takže sa nadmerne nezaberá priestor a v prípade havárie webu sa dá veľmi rýchlo vrátiť k nejakej staršej verzii zmenou symlinku current na iný adresár release_.
Po niekoľkých úspešných build a deploy môže adresárová štruktúra vyzerať napríklad takto:
current -> release_20190717114555
release_20190717090930
release_20190717112359
release_20190717114555
Public adresár webu (document_root)
Štandardne sa GIT aplikácia zobrazuje z adresára current, čiže pre doménu www.example.com by to bolo z adresára /example.com/web/current/. Avšak niektoré aplikácie vyžadujú, aby sa web nezobrazoval z tohto adresára, ale z nejakého podadresára. Napríklad pre Laravel framework je to adresár public. To znamená, že sa má web zobrazovať z adresára
/example.com/web/current/public/
Táto cesta k web adresáru sa dá zadefinovať pri pridávaní aplikácie z GIT v záložke "Možnosti publikovania", v políčku: "Cesta k web adresáru" tak ako to ukazuje nasledovný obrázok: