Když chcete spustit aplikaci bez instalace, sáhněte po kontejneru
Odděl build od nasazení. Build a testy mají běžet na každý push, nasazení jen na tag nebo na větev určenou k vydání. Když obojí spojíš, každý experiment v kódu skončí v produkci. Podmínku nasazení řeš pomocí if a prostředí (environments), kde nastavíš ruční schválení. Tím získáš kontrolu bez toho, abys psal vlastní skript na ověřování.
GitHub Actions je dnes nejrychlejší cesta k CI/CD, pokud už kód držíš v GitHubu. Nemusíš řešit samostatný server, instalaci runnera ani napojování webhooků. Vše se konfiguruje v jednom souboru uvnitř repozitáře. Stačí pochopit tři pojmy: workflow, job a krok. Workflow je celek popsaný v YAML, job je skupina kroků běžící na jednom stroji a rekonstrukce koupelny krok za krokem je konkrétní příkaz nebo hotová akce. Bez tohoto rozlišení skončíš u jednoho obřího jobu, který se špatně ladí i zrychluje.
Bezpečnost není jednorázový úkol. Každá nová funkce, která pracuje s databází, musí projít stejnou kontrolou jako ta předchozí. Když vývojář vidí v kódu spojení řetězců a vstupu, má zpozornět. Nejde o paranoiu, ale o rozdíl mezi aplikací, která data chrání, a aplikací, která je vydává na potkání.
Před podpisem smlouvy si vyžádejte seznam podporovaných databází s uvedením konkrétních verzí a data posledního testování. Pokud dodavatel odmítne uvést, které funkce nejsou podporované, berte to jako varovný signál. Stejně tak sledujte, zda je podpora vázaná na konkrétní edici databáze, protože přechod z komunitní na komerční verzi může znamenat dodatečné náklady a změny v licencování. Rozhodnutí o nasazení by mělo vycházet z ověřených testů, ne z marketingu.
Mezi nejčastější chyby patří zapomenutí mapování portů nebo špatné pořadí argumentů. Příkaz docker run očekává nejprve přepínače, teprve potom název obrazu a případně příkaz, který se má spustit. Další častá chyba je ukládání dat mimo svazek. Také se vyhněte tomu, abyste v Dockerfile používali příkaz COPY . . bez souboru .dockerignore. Zbytečně tak do obrazu zahrnete dočasné soubory nebo citlivá data.
Tajemství nepatří do YAML. Ulož je do repository secrets a v workflow je čti přes kontext. Pozor na dvě věci: secrets se nepropisují do forků při pull requestech z cizích repozitářů, takže testy závislé na tajemstvích tam spadnou. A pokud hodnotu vypíšeš do logu, může se stát, že ji GitHub zamaskuje jen částečně. Nikdy nedávej tajemství do názvů jobů ani do parametrů, které se zobrazují v přehledu běhů.
Posledním krokem je pravidelná údržba. Jednou za čas projdi větve, které už nikdo nepoužívá, a smaž je. Zkontroluj, že hlavní větev je vždy v použitelném stavu a že se z ní dá postavit projekt. Zvaž, jestli ti stačí lokální repozitář, nebo jestli potřebuješ vzdálený, aby na projektu mohlo pracovat víc lidí. Ať zvolíš cokoli, drž se jednoho pravidla: historie změn má být čitelná jako deník projektu. Když se za půl roku vrátíš k chybě, musíš z ní poznat, co se stalo a proč.
Dalším krokem je větev pro hlavní vývoj. Většina týmů dnes používá jednu hlavní větev, ze které se odvozují krátkodobé větve pro jednotlivé úkoly. osvětlení v obývákuětev pro úkol by měla žít hodiny až dny, ne týdny. Čím déle ji držíš oddělenou, tím bolestivější bude její sloučení. Před sloučením si vždy stáhni aktuální stav hlavní větve a vyřeš konflikty lokálně. Konflikt neznamená chybu, jen dvě změny na stejném místě. Nikdy neřeš konflikt tak, že jeden z zápisů slepě smažeš — nejdřív si přečti obě verze a rozhodni, která logika má platit.
Typická chyba začátečníků je nahrávat do repozitáře velké binární soubory, obrázky z produkce nebo celé složky s nahranými soubory od uživatelů. Tyto soubory se špatně verzují, nafukují historii a při klonování projektu zdržují každého. Stejně problematické je potvrzovat změny s hesly, klíči a přístupovými údaji. Pokud se tak stane, nestačí soubor smazat v dalším potvrzení — zůstane v historii. Řešením je klíče okamžitě zneplatnit a historii přepsat, což je nepříjemné, ale nutné.
Spuštění a síťování Z obrazu vytvoříte běžící kontejner příkazem docker run. Pokud ho chcete spustit na pozadí, přidejte -d. Pro přístup z prohlížeče je potřeba namapovat porty: -p 8080:80 znamená, že port 80 v kontejneru bude dostupný na portu 8080 vašeho počítače. Data, která mají přežít smazání kontejneru, ukládejte do svazku (volume) pomocí -v. Bez toho přijdete o vše, co aplikace zapíše. If you treasured this article and you simply would like to be given more info regarding http://Praxis-Ritthammer.de/index.php?title=Kdy_rozdělit_Testy_na_jednotkové_a_integrační? i implore you to visit our own page. Kontejnery se mezi sebou dorozumívají přes vlastní síť, kterou vytvoříte příkazem docker network create. Do stejné sítě pak připojíte více kontejnerů a mohou se volat podle jmen.
Verzování začíná tím, že si ujasníš, co vlastně chceš sledovat. Pro webový projekt to obvykle znamená zdrojový kód, konfigurační soubory a databázové migrace. Naopak závislosti stažené z balíčkového manažera, úPrava InteriéRu buildované soubory a lokální konfigurace s hesly do repozitáře nepatří. Prvním praktickým krokem je vytvořit soubor, který tyto výjimky vypíše, a teprve pak spustit inicializaci repozitáře. Pokud soubor s výjimkami vytvoříš až po prvním nahrání, budou se ignorované soubory dál nabízet ke sledování a budeš je muset odstranit ručně.