Fórum Root.cz

Hlavní témata => Server => Téma založeno: Jirka_hav 07. 12. 2020, 10:29:34

Název: Automatizace nasazení na sdílený webhosting
Přispěvatel: Jirka_hav 07. 12. 2020, 10:29:34
Jak řešíte automatizaci nasazování složitější php aplikace na sdílený webhosting? Speciálně mě zajímá jak se co nejlépe poprat se spouštěním composeru, a nahráváním souborů přes ftp. Kódy aplikací mám typicky v gitlabu, takže se přirozeně nabízí použití jejich pipeline a runneru, ale nejsem si jistý jakým stylem to pojmout.
Název: Re:Automatizace nasazení na sdílený webhosting
Přispěvatel: IDontCare 07. 12. 2020, 11:00:45
FTP :o :o To si musel zaspat deset let.. Bud muzes propojit repozitar a hostingem primo(SSH), nebo pouzij komplexnejsi CI/CD nastroje.

https://docs.github.com/en/free-pro-team@latest/actions/guides/about-continuous-integration
https://github.com/actions/starter-workflows/blob/main/ci/php.yml

..etc.
Název: Re:Automatizace nasazení na sdílený webhosting
Přispěvatel: Petr Klíma 07. 12. 2020, 12:45:39
Zde pro inspiraci  https://gitlab.com/gitlab-examples/php/-/blob/master/.gitlab-ci.yml

Nevím jak máte organizovaný kód ale zajímavé je použítí
Kód: [Vybrat]
only:
        - deploy
v jobu - job se spustí jen pokud se push týká branche deploy.

No a v tom jobu můžete v klidu udělat "můj FTP client" zdroj cíl  (nechete přejít na SSH ...)
Název: Re:Automatizace nasazení na sdílený webhosting
Přispěvatel: Ondrej Nemecek 07. 12. 2020, 14:32:07
Zde pro inspiraci  https://gitlab.com/gitlab-examples/php/-/blob/master/.gitlab-ci.yml

Nevím jak máte organizovaný kód ale zajímavé je použítí
Kód: [Vybrat]
only:
        - deploy
v jobu - job se spustí jen pokud se push týká branche deploy.

No a v tom jobu můžete v klidu udělat "můj FTP client" zdroj cíl  (nechete přejít na SSH ...)

Obával bych se, zda to to ftp neuvaří (složitější PHP aplikace - stovky/tisíce souborů). Já měl skript v lftp které umí paralelní přenos více souborů, i tak to trvalo. Nahrával jsem zvlášť statické soubory (aby to šlo nahrát jen jednou) a zvlášť php zdrojáky (tím jsem přenášel změny v aplikaci).

Podle mě je ideální použít hosting, který podporuje lepší metodu deploye. Na VPS se dá udělat přímý deploy z verzovacího systému nebo deply pomocí rsync, někteří poskytovatelé popodrují deploy z gitu, pomocí CI atd.

Pokud je pouze klasické ftp (stále jediná možnost u množství levných sdílených hostingů) tak zkusit nějakýftp git hook (https://www.google.com/search?q=git+hook+to+ftp+deploy&ie=utf-8&oe=utf-8) (nemám zkušenost).
Název: Re:Automatizace nasazení na sdílený webhosting
Přispěvatel: by_cx 07. 12. 2020, 15:40:51
Vytvoříš si balík, který má všechno včetně věcí, které instaluje composer a pak to přes FTP nakopíruješ. Není důvod to pouštět až na serveru. Ale FTP je fakt relikt. Pokud to je někde jediná možnost, jak tam dostat appku, tak bych se tomu vyhnul. Kdo ví co dalšího se tam schovává.
Název: Re:Automatizace nasazení na sdílený webhosting
Přispěvatel: Miroslav Šilhavý 07. 12. 2020, 15:46:26
Já bych na to použil existující službu a netříštil bych na této činnosti moc síly. Viz např. deployhq.com. Stáhne si aktuální (nebo vybraný) commit, provede potřebné příkazy (composer, npm/yarn, ...) a soubory, které se liší od posledního deploy to nahraje pomocí FTP/SSH a kdoví čeho ještě na server. Nastaveno během asi 15 minut.
Název: Re:Automatizace nasazení na sdílený webhosting
Přispěvatel: Jirka_hav 11. 12. 2020, 00:34:03
Díky za odpovědi, dál už si poradím.