GNU/Linux >> Znalost Linux >  >> Panels >> Docker

Jak používat profily služeb ke zjednodušení zásobníků v Docker Compose

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 -d

Profily 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šem docker-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:- dev

Instance 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 to docker-compose up :

docker-compose up --profile dev

Tento příkaz spustí obě app a debug služby z výše uvedeného souboru Compose. Pokud jste spustili docker-compose up , s vynecháním --profile příznak, pouze app služba by se spustila.

Můžete spustit více profilů současně opakováním --profile vlajka. Compose také podporuje COMPOSE_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:- dev

Implicitní 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ílela dev 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 a mariadb 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.


Docker
  1. Jak používat příkaz Systemctl ke správě služeb Systemd

  2. Jak používat Docker Compose

  3. Jak použít Dockerfile k vytvoření Docker Image

  1. Jak používat profily služeb ke zjednodušení zásobníků v Docker Compose

  2. Jak používat příkaz Docker Inspect

  3. Jak nakonfigurovat docker pro použití proxy

  1. Jak nainstalovat a používat Docker Compose na Ubuntu 18.04

  2. Jak nainstalovat a používat Docker Compose na CentOS 7

  3. Jak nainstalovat a používat Docker Compose na CentOS