Docker Compose nyní podporuje profily pro selektivní použití služeb. Služby ve vašem docker-compose.yml lze propojit s jedním nebo více pojmenovanými profily. Předání názvu profilu do docker-compose up spustí pouze služby v tomto profilu, což vám umožní vytvářet varianty vašeho zásobníku pro konkrétní prostředí a konfigurace.
Compose se dříve zaměřoval na definování jednoho zásobníku, který je kanonickou distribucí vaší aplikace. Profily přidávají více prostoru pro přizpůsobení, které části zásobníku se mají používat, čímž jsou komplexní sady služeb modulárnější a konfigurovatelnější.
Proč používat profily?
Použití profilů je zcela volitelné. Vaše stávající soubory Docker Compose budou i nadále fungovat a není třeba hned přebírat profily.
Profily služeb řeší několik běžných frustrací s vývojovými a testovacími toky Docker Compose. Můžete mít služby, které chcete používat pouze ve vývoji, jako je ladicí kontejner nebo protokolovací služba. Když jste ve výrobě, nepotřebujete tyto služby a chcete se vyhnout jejich spuštění.
Dříve vyžadovalo dosažení tohoto cíle rozdělení definic služeb do více souborů. Pak byste potřebovali nepraktické up příkaz ke spuštění všeho ve vývoji:
# docker-compose.ymlversion:"3"services:app:image:my-app:latest # docker-compose-dev.ymlversion:"3"services:debug:image:my-app-debug:latest# start v productiondocker-compose up -d# start in developmentdocker-compose -f docker-compose.yml -f docker-compose-dev.yml up -dProfily umožňují kombinovat obě definice služeb do jednoho souboru. K výběru konkrétního profilu můžete použít příznak nebo proměnnou prostředí, aniž byste museli ručně zadávat cesty k souboru. To vytváří pohodlnější prostředí, které je méně obtížné dokumentovat, zapisovat a spouštět.
Definování profilů
Profily se vytvářejí nastavením
profilespole služeb ve vašemdocker-compose.yml. Profily jsou specifikovány jako seznam. Každá služba může mít jeden nebo více profilů.version:"3"services:app:image:my-app:latest debug:image:my-app-debug:latest profiles:- devInstance profilu jsou vytvářeny implicitně z názvů přidělených vašim
profilespole. Služby, které sdílejí profil, jsou automaticky připojeny.Chcete-li spustit služby zahrnuté v profilu, přidejte
--profileflag todocker-compose up:docker-compose up --profile devTento příkaz spustí obě
appadebugslužby z výše uvedeného souboru Compose. Pokud jste spustilidocker-compose up, s vynecháním--profilepříznak, pouzeappslužba by se spustila.Můžete spustit více profilů současně opakováním
--profilevlajka. Compose také podporujeCOMPOSE_PROFILESproměnná prostředí jako alternativa k--profile. Toto přijímá seznam názvů profilů oddělených čárkami.Služby bez
profilespole bude vždy spuštěno, bez ohledu na jakýkoli požadovaný profil. Jakmile je službě přidělen profil, spustí se pouze v případě, že byl tento profil vyžádán. U služeb s více profily umožníte spuštění služby vyžádáním kteréhokoli z nich.Implicitní spuštění profilu
Pokud ručně spustíte službu pomocí
docker-compose run, budou profily vždy ignorovány . V tomto případě Compose také spustí všechny služby, na kterých závisí požadovaná služba, pokud sdílejí profil nebo nemají přiřazen žádný profil.Zde spusťte
docker-compose run debugspustídebug-utilsslužba, i kdyždevprofil nebyl explicitně vybrán:version:"3"services:app:image:my-app:latest debug-utils:image:my-app-debug-utils:latest profiles:- dev debug:image:my-app-debug:latest depend_on :profily debug-utils:- devImplicitní zahájení platí pouze pro přímé závislé na zadané službě. Pokud
debug-utilsměl takédepends_ona tato služba nesdíleladevprofilu, nespustí se správně.Aby rozlišení závislostí správně fungovalo s
docker-compose run, musí všechny služby ve stromu sdílet profil nejvyšší služby nebo být trvale povoleny. Pokud neplatí ani jedna z těchto podmínek, budete muset přidat--profilepříznak explicitně aktivovat další požadované profily.Přehled
Profily služeb jsou pohodlnou funkcí Compose, která usnadňuje správu různých kombinací služeb. Pomocí profilů se můžete vyhnout rozdělení služeb do více souborů Compose. Přidávání
--profileobvykle působí přirozeněji než sloučení více souborů YAML dohromady.Profily vám umožňují vytvářet dílčí sady v rámci hlavní aplikace Compose. Jejich zavedení jako součást specifikace Compose je uznáním toho, že zásobníky ve vývoji často zahrnují další služby nad rámec služeb používaných ve výrobě.
Obecněji řečeno, profily činí Compose všestrannějším, protože usnadňují přizpůsobení zásobníku. I když jsou profily představovány jako přístup ke správě prostředí, mohou také pomoci komunitě vytvářet různé varianty oblíbených obrázků. Představte si WordPress
docker-compose.ymlpomocímysqlamariadbprofily:nyní můžete snadno přepínat mezi předem nakonfigurovanými databázovými službami a vybrat si engine, který odpovídá vašim preferencím.Docker Compose 1.28 představil profily začátkem tohoto roku. Pokud máte nejnovější verzi binárního souboru Compose nebo Docker Desktop pro Windows a Mac, můžete přidávat
profilesdo vašich souborů Compose, abyste mohli selektivně povolit služby.
Jak zabezpečit citlivá data pomocí tajemství Docker Compose Jak podepsat své obrázky dockeru, abyste zvýšili důvěruDocker