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
profiles
pole 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
profiles
pole. Služby, které sdílejí profil, jsou automaticky připojeny.Chcete-li spustit služby zahrnuté v profilu, přidejte
--profile
flag todocker-compose up
:docker-compose up --profile devTento příkaz spustí obě
app
adebug
služby z výše uvedeného souboru Compose. Pokud jste spustilidocker-compose up
, s vynecháním--profile
příznak, pouzeapp
služba by se spustila.Můžete spustit více profilů současně opakováním
--profile
vlajka. Compose také podporujeCOMPOSE_PROFILES
proměnná prostředí jako alternativa k--profile
. Toto přijímá seznam názvů profilů oddělených čárkami.Služby bez
profiles
pole 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 debug
spustídebug-utils
služba, i kdyždev
profil 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-utils
měl takédepends_on
a tato služba nesdíleladev
profilu, 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--profile
pří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í
--profile
obvykle 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.yml
pomocímysql
amariadb
profily: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
profiles
do 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