Automatizace nasazení na sdílený webhosting

Automatizace nasazení na sdílený webhosting
« kdy: 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.
« Poslední změna: 07. 12. 2020, 10:31:58 od Petr Krčmář »


Re:Automatizace nasazení na sdílený webhosting
« Odpověď #1 kdy: 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://github.com/actions/starter-workflows/blob/main/ci/php.yml

..etc.

Re:Automatizace nasazení na sdílený webhosting
« Odpověď #2 kdy: 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 ...)

Re:Automatizace nasazení na sdílený webhosting
« Odpověď #3 kdy: 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 (nemám zkušenost).

by_cx

  • ****
  • 296
    • Zobrazit profil
    • E-mail
Re:Automatizace nasazení na sdílený webhosting
« Odpověď #4 kdy: 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á.


Re:Automatizace nasazení na sdílený webhosting
« Odpověď #5 kdy: 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.

Re:Automatizace nasazení na sdílený webhosting
« Odpověď #6 kdy: 11. 12. 2020, 00:34:03 »
Díky za odpovědi, dál už si poradím.