Vytvoření vlastní akce GitHubu
GitHub Actions je výkonná funkce, která vám pomůže přejít z kódu do cloudu– od pohodlí a pohodlí vašeho vlastního úložiště. Tady se dozvíte o různých typech akcí GitHubu a o metadatech, syntaxi a příkazech pracovního postupu pro vytvoření vlastních akcí GitHubu.
Typy akcí GitHubu
Akce jsou jednotlivé úkoly, které můžete použít k přizpůsobení vývojových pracovních postupů. Vlastní akce můžete vytvořit tak, že napíšete vlastní kód, který komunikuje s vaším úložištěm pro provádění vlastních úloh, nebo pomocí akcí sdílených složek komunity GitHubu. Při procházení různých akcí si všimnete, že existují tři různé typy akcí: akce kontejneru Dockeru, akce JavaScriptu a akce složených kroků spuštění. Pojďme se podrobněji podívat na jednotlivé typy akcí.
Akce kontejneru Dockeru
Kontejnery Dockeru zabalí prostředí pomocí kódu GitHub Actions. To znamená, že akce běží v konzistentním a spolehlivém prostředí, protože všechny jeho závislosti jsou v daném kontejneru. Pokud se akce musí spouštět v konkrétní konfiguraci prostředí, kontejnery Dockeru jsou dobrým způsobem, jak přejít, protože můžete přizpůsobit operační systém a nástroje. Nevýhodou je, že protože úloha musí sestavit a načíst kontejner, akce kontejneru Dockeru jsou často pomalejší než akce JavaScriptu.
Před vytvořením akce kontejneru Dockeru byste měli mít základní znalosti o tom, jak používat proměnné prostředí a systém souborů kontejneru Dockeru. Kroky k sestavení akce kontejneru Dockeru jsou pak minimální a jednoduché:
- Vytvořte příkazy
Dockerfilepro definování příkazů pro sestavení image Dockeru. - Vytvořte
action.ymlsoubor metadat, který definuje vstupy a výstupy akce.runs: using:Nastavte hodnotu nadockerhodnotu aruns: image:hodnotu vDockerfilesouboru. - Vytvořte
entrypoint.shsoubor pro popis image Dockeru. - Potvrďte a odešlete akci na GitHub s následujícími soubory:
action.yml,entrypoint.sh,DockerfileaREADME.md.
Akce JavaScriptu
Akce JavaScriptu se můžou spouštět přímo na počítači spouštěče a oddělit kód akce od prostředí, které se používá ke spuštění akce. Z tohoto důvodu je kód akce zjednodušený a může provádět rychleji než akce v kontejneru Dockeru.
Jako předpoklad pro vytváření a používání zabalených akcí JavaScriptu je potřeba stáhnout Node.js, která zahrnuje npm. Jako volitelný krok (ale doporučujeme) je použít sadu nástrojů GitHub Actions Node.js, což je kolekce balíčků Node.js, které umožňují rychle vytvářet akce JavaScriptu s větší konzistencí.
Postup sestavení akce JavaScriptu je minimální a jednoduchý:
- Vytvořte soubor metadat, který
action.ymldefinuje vstupy a výstupy akce, a také informovat spouštěče akcí, jak spustit tuto akci JavaScriptu. - Vytvořte soubor s kontextovými
index.jsinformacemi o balíčcích Toolkit, směrování a dalších funkcích akce. - Potvrďte a odešlete akci na GitHub s následujícími soubory:
action.yml,index.js,node_modulespackage.json,package-lock.jsonaREADME.md.
Akce složených kroků spuštění
Akce složených kroků spuštění umožňují opakovaně používat akce pomocí skriptů prostředí. V rámci stejné akce můžete dokonce kombinovat více jazyků prostředí. Pokud máte mnoho skriptů prostředí pro automatizaci několika úloh, můžete je teď snadno převést na akci a znovu je použít pro různé pracovní postupy. Někdy je jednodušší jednoduše napsat skript prostředí než pomocí JavaScriptu nebo zabalit kód do kontejneru Dockeru.
Balíček složených akcí
Zabalené složené akce sbalí několik kroků do opakovaně použitelné jednotky. Tyto akce jsou definovány v úložišti a lze na tyto akce odkazovat v pracovních postupech v různých úložištích. Zabalení složené akce zjednodušuje pracovní postupy, snižuje duplikaci a zlepšuje udržovatelnost.
Při vytváření zabalené složené akce se kroky definují v jednom action.yml souboru. Tento soubor určuje vstupy, výstupy a posloupnost příkazů nebo akcí, které se mají provést. Balíčkové složené akce jsou zvláště užitečné pro automatizaci opakovaných úloh nebo kombinování více příkazů shellu do jedné opakovaně použitelné operace.
Vytvoření složeného příkazu qction
1. Nastavení adresáře pro složenou akci
Složenou akci musíte umístit do vlastního adresáře v úložišti.
Příklad adresářové struktury:
.github/actions/my-composite-action/
├── action.yml
└── scripts/
└── my-script.sh
2. Definování action.yml souboru
V adresáři my-composite-action vytvořte action.yml soubor.
name: "My Composite Action"
description: "A reusable composite action that checks out code and sets up Node.js"
inputs:
node-version:
description: "The Node.js version to use"
required: true
runs:
using: "composite"
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ inputs.node-version }}
Poznámka: Pole using: "composite" označuje, že tato akce je složená akce.
3. Použijte složenou akci v pracovním postupu
Po vytvoření složené akce se na ni dá odkazovat v pracovním postupu GitHub Actions.
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Use my composite action
uses: ./.github/actions/my-composite-action
with:
node-version: '18'
Pokud je složená akce sdílená z jiného úložiště, odkažte se na to takto:
uses: owner/repository/.github/actions/my-composite-action@v1
Přidání výstupů do složené akce
Složené akce mohou definovat výstupy, které můžou pracovní postupy použít k předávání dat mezi kroky nebo úlohami. Výstupy jsou užitečné zejména pro sdílení výsledků nebo vypočítaných hodnot z jedné akce do druhé.
Následující příklad ukazuje, jak definovat a používat výstup ve složené akci:
Definování výstupu v action.yml
Soubor action.yml určuje výstup s názvem script-result. Tento výstup načte jeho hodnotu z result výstupu run-script kroku. Tento run-script krok spustí příkaz Bash, který nastaví výstupní hodnotu.
outputs:
script-result:
description: "Result from the script"
value: ${{ steps.run-script.outputs.result }}
runs:
using: "composite"
steps:
- id: run-script
run: echo "result=Success" >> $GITHUB_OUTPUT
shell: bash
Použití výstupu v pracovním postupu
Po vytvoření složené akce se k jeho výstupu dostanete v pracovním postupu. Tady je příklad:
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Run composite action
id: my-action
uses: ./.github/actions/my-composite-action
- name: Display result
run: echo "Script Result: ${{ steps.my-action.outputs.script-result }}"
V tomto příkladu:
- Složená akce se vyvolá pomocí klíčového
usesslova. - Přístup k výstupu
script-resultpomocí syntaxesteps.<step-id>.outputs.<output-name>. - Zobrazí výsledek v protokolech pracovního postupu.
Definujte výstupy ve složených akcích pro vytváření opakovaně použitelných a modulárních pracovních postupů. Tento přístup zjednodušuje sdílení dat a zlepšuje udržovatelnost.
Osvědčené postupy pro složené akce
| Osvědčený postup | Popis |
|---|---|
| Použijte verzování |
v1 K odkazování na stabilní verzi 1 použijte značku. |
| Zachování modulárních akcí | Seskupte související kroky uvnitř složené akce. |
| Vstupy a výstupy dokumentu | Přidejte popisy vstupů a výstupů v souboru action.yml. |
| Testování před publikováním | Ověřte složenou akci v testovacím úložišti. |
Složená akce v pracovním postupu
Složené akce představují účinný způsob, jak zjednodušit pracovní postupy tím, že se více kroků spojí do opakovaně použitelné jednotky. Tyto akce umožňují definovat posloupnost příkazů nebo akcí v jednom action.yml souboru, což usnadňuje údržbu a opakované použití logiky napříč pracovními postupy.
Výhody složených akcí:
- Opětovná použitelnost – Definujte akce jednou a použijte je v několika pracovních postupech.
- Udržovatelnost – Omezení duplicit centralizací logiky v jediné akci
- Modularita – Spojení více příkazů shellu nebo jiných akcí do jednoho celku.
Vývoj akce pro nastavení rozhraní příkazového řádku ve spouštěčích GitHub Actions
Mnoho pracovních postupů CI/CD vyžaduje pro interakci s cloudovými službami, správu infrastruktury nebo spouštění skriptů konkrétní verzi nástroje rozhraní příkazového řádku . I když jsou spouštěče hostované na GitHubu předinstalované s mnoha nástroji, nemusí obsahovat přesnou verzi, kterou pracovní postup potřebuje, zejména pokud se jedná o starší nebo nepodporovanou verzi. Místo instalace požadované verze rozhraní příkazového řádku v každém pracovním postupu můžete vytvořit opakovaně použitelnou akci GitHubu , která:
- Zajišťuje konzistentní instalaci požadované verze rozhraní příkazového řádku napříč úlohami.
- Zjednodušuje pracovní postupy centralizací logiky instalace.
- Optimalizuje ukládání do mezipaměti pro rychlejší provádění pracovních postupů.
Jak vytvořit akci pro nastavení rozhraní příkazového řádku (CLI)
Akce nastavení rozhraní příkazového řádku je akce založená na JavaScriptu, která nainstaluje a nakonfiguruje rozhraní příkazového řádku ve spouštěči GitHubu.
Postup vytvoření akce:
Krok 1: Nastavení adresáře akcí
Pokud chcete ručně vytvořit adresář pro akci nastavení rozhraní příkazového řádku, postupujte takto:
- Přejděte k vašemu úložišti.
Vytvoření nového adresáře pro akci
Vytvořte nový adresář s názvemmy-cli-actionuvnitř.github/actionssložky. Tím zajistíte, že vaše akce bude uspořádaná a bude následovat doporučenou strukturu GitHubu pro vlastní akce.Přejděte do nového adresáře.
Přejděte do nově vytvořeného adresáře a začněte přidávat soubory pro vaši akci:Ověření struktury adresáře
Po vytvoření adresáře by struktura úložiště měla vypadat takto:
your-repository/
├── .github/
│ ├── actions/
│ │ ├── my-cli-action/
Teď jste připraveni pokračovat v vytváření action.yml souboru a dalších potřebných souborů pro akci nastavení rozhraní příkazového řádku.
Krok 2: Definování souboru metadat action.yml
Vytvořte soubor action.yml pro popis akce.
name: "Setup MyCLI"
description: "Installs MyCLI and adds it to the PATH"
author: "Your Name"
inputs:
version:
description: "The CLI version to install"
required: false
default: "latest"
runs:
using: "node16"
main: "index.js"
Proč používat : node16? Tato akce spustí javascriptový kód pomocí Node.js 16.
Krok 3: Vytvoření javascriptového skriptu pro instalaci rozhraní příkazového řádku
Ve stejném adresáři vytvořte soubor s názvem index.js a přidejte následující kód:
const core = require('@actions/core');
const { execSync } = require('child_process');
async function run() {
try {
const version = core.getInput('version') || 'latest';
console.log(`Installing MyCLI version: ${version}...`);
execSync(`curl -fsSL https://cli.example.com/install.sh | sh`, { stdio: 'inherit' });
console.log("MyCLI installed successfully.");
} catch (error) {
core.setFailed(`Installation failed: ${error.message}`);
}
}
run();
Výše uvedený kód JavaScriptu používá core.getInput() k načtení verze rozhraní příkazového řádku zadané jako vstup. Potom spustí příkaz curl ke stažení a instalaci rozhraní příkazového řádku. Pokud proces instalace selže, akce pomocí core.setFailed() označí pracovní postup jako neúspěšný.
Krok 4: Místní testování akce
Před použitím akce v pracovním postupu ji otestujte na spouštěči hostovaného na GitHubu.
Ve svém úložišti vytvořte soubor pracovního postupu (.github/workflows/test.yml):
name: Test MyCLI Setup
on:
push:
branches:
- main
- feature/*
1. Aktivace pracovního postupu
Pracovní postup se aktivuje při provedení změn do hlavní větve a na všechny větve, které odpovídají vzoru feature/*. Můžete to upravit tak, aby odpovídalo strategii větvení úložiště.
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
2. Klonování úložiště
Akce /checkout@v4 akce slouží ke klonování úložiště do spouštěče. Tím se zajistí, že pracovní postup má přístup k souborům úložiště.
- name: Install MyCLI
uses: ./.github/actions/my-cli-action
with:
version: '1.2.3'
3. Spuštění vlastní akce
Použití: ./.github/actions/my-cli-action line odkazuje na vlastní akci místně. Ujistěte se, že je správně nastavený adresář akcí a action.yml soubor. Vstup verze určuje verzi rozhraní příkazového řádku, která se má nainstalovat – v tomto případě verze 1.2.3.
- name: Verify CLI Installation
run: |
echo "Checking MyCLI version..."
mycli --version
4. Ověření instalace rozhraní příkazového řádku
Tento krok spustí příkaz shellu pro ověření úspěšné instalace CLI. Zkontroluje verzi nainstalovaného rozhraní příkazového řádku spuštěním souboru mycli --version.
Místní testování
Pro otestování tohoto pracovního postupu místně použijte CLI nástroj act.
act -j test
To simuluje prostředí GitHub Actions na místním počítači, což vám umožní ladit a ověřit pracovní postup před nasdílením změn.
Tip pro optimalizaci: Ukládání do mezipaměti
Pro zlepšení výkonu pracovního postupu zakešujte instalační adresář rozhraní příkazové řádky (CLI) pomocí akce:
- name: Cache MyCLI
uses: actions/cache@v4
with:
path: ~/.mycli
key: mycli-${{ runner.os }}-${{ inputs.version }}
Tím se zajistí, že následná spuštění znovu použijí instalaci rozhraní příkazového řádku uloženého v mezipaměti, což zkracuje dobu instalace.
Osvědčené postupy pro akce nastavení rozhraní příkazového řádku
| Osvědčené postupy | Popis |
|---|---|
| Použijte verzování | Povolit uživatelům zadat verzi rozhraní příkazového řádku prostřednictvím inputs.version. |
| Správné zpracování chyb | Použijte core.setFailed() pro ukončení v případě chyb. |
| Instalace CLI cache | Optimalizace výkonu pracovního postupu pomocí actions/cache. |
| Poskytnutí dokumentace | Vysvětlit použití a vstupy v README.md. |
Řešení potíží s akcemi JavaScriptu
Při práci s GitHub Actions založenými na JavaScriptu můžete během provádění pracovního postupu narazit na neočekávané chování, chyby nebo selhání. Tato lekce poskytuje techniky a nástroje, které vám pomůžou identifikovat a vyřešit problémy v akcích JavaScriptu.
Běžné scénáře řešení potíží
| Problém | Možná příčina | Navrhovaná oprava |
|---|---|---|
| Akce selže s trasování zásobníku | Chyba syntaxe nebo modulu runtime v index.js |
Použití console.log() a kontrola protokolů |
Vstupy jsou undefined |
Nesprávný název vstupu nebo chybějící vstup | Ověřte action.yml a jak jsou vstupy předány |
| Proměnné prostředí nejsou nastaveny. |
core.exportVariable nebo process.env se nepoužíval správně |
Zkontrolujte kód nastavující proměnné |
| Soubor nebyl nalezen. | Chybějící relativní cesty | Použijte __dirname nebo úplné cesty k souborům |
| Mezipaměť není obnovena | Nesprávné key nebo path hodnoty |
Kontrola konfigurace a klíčů mezipaměti |
Použití protokolování pro ladění
Protokolování zpráv pomocí core.info, core.debuga console.log
const core = require('@actions/core');
core.info("This is an info message");
core.debug("This is a debug message");
console.log("This is a raw console log");
✅ Pro protokoly ladění používejte core.debug – zobrazí se jenom v případě, že je ACTIONS_STEP_DEBUG nastavená na hodnotu true.
Povolte protokolování ladění
Protokoly ladění na úrovni kroku můžete povolit nastavením následujícího tajného klíče:
ACTIONS_STEP_DEBUG=true
Pokud chcete povolit diagnostické protokoly spouštěče, nastavte:
ACTIONS_RUNNER_DEBUG=true
Nastavení tajných kódů pro ladění
- Přejděte do úložiště GitHub.
- Přejděte na Nastavení>Tajemství a proměnné>Akce.
- Přidejte nové tajné kódy s následujícími názvy a hodnotami:
-
ACTIONS_STEP_DEBUG:
true -
ACTIONS_RUNNER_DEBUG:
true
-
ACTIONS_STEP_DEBUG:
Kontrola protokolů pracovního postupu
Pokud pracovní postup selže, klikněte na neúspěšnou úlohu na kartě Akce. Rozbalte jednotlivé kroky na:
- Zobrazení podrobných protokolů
- Kontrola standardního výstupu (stdout)
- Zobrazení ukončovacího kódu skriptů
- Identifikace neošetřených výjimek
🔍 Příklad výstupu protokolu
Error: Cannot find module '@actions/core'
Require stack:
- /home/runner/work/_actions/my-org/my-action/index.js
✅ Oprava: Spusťte příkaz npm install @actions/core a proveďte commit node_modules (nebo použijte ncc pro zabalení akce).
Otestujte svou akci místně
Použijte act – nástroj rozhraní příkazového řádku ke spuštění GitHub Actions místně. Příklad:
act -j test
🛠 Při místním testování nezapomeňte správně simulovat prostředí GitHubu.
Zpracovávání chyb s lehkostí
Zachycení výjimek a selhání pomocí užitečných zpráv:
try {
// your logic
} catch (error) {
core.setFailed(`Action failed with error: ${error.message}`);
}
🔁 Tím se zajistí, že GitHub zastaví pracovní postup při chybě a poskytne čitelné protokoly.
Osvědčené postupy pro ladění akcí JavaScriptu
| Cvičení | Popis |
|---|---|
| Použijte core.debug() | Pokud není povolené ladění, skryjte podrobné protokoly. |
| Ověřte action.yml | Ujistěte se, že jsou správně definované vstupy a výstupy. |
| Kód sady | Slouží @vercel/ncc ke kompilaci JavaScriptu do jednoho souboru. Tím se snižují závislosti a zajišťují, že jsou zahrnuty všechny požadované moduly, což brání chybám za běhu způsobeným chybějícími soubory. |
| Testování pomocí akce | Simulujte spuštění místně pro rychlejší iterace. |
| Použití příkazu try/catch | Zabránit tomu, aby pracovní postupy selhaly nepozorovaně. |
Řešení potíží s akcemi kontejneru Dockeru
Akce kontejneru Dockeru jsou výkonné pro zapouzdření složitých nástrojů a prostředí v pracovních postupech GitHub Actions. Ladění těchto akcí ale může být náročnější než akce JavaScriptu kvůli prostředí izolovaného modulu runtime. Tato lekce vás provede identifikací, diagnostikou a řešením problémů s akcemi založenými na Dockeru.
Běžné problémy s akcemi kontejneru Dockeru
| Problém | Příčina | Navrhovaná oprava |
|---|---|---|
| Akce se nepovede spustit |
ENTRYPOINT nebo CMD chybně nakonfigurované |
Potvrzení správného použití ENTRYPOINT souboru Dockerfile |
| Chybějící závislosti | Závislosti nenainstalované nebo chybně nakonfigurované | Ujistěte se, že jsou v obrazu nainstalované všechny balíčky. |
| Vstupy nepřišly |
INPUT_ Proměnné prostředí nejsou přístupné |
Použijte process.env.INPUT_<INPUT_NAME> (nebo ekvivalent pro shell) |
| Soubor nebyl nalezen. | Nesprávná cesta k souboru uvnitř kontejneru | Použijte absolutní cesty nebo ověřte strukturu adresáře |
| Oprávnění byla odepřena. | Soubor nebo skript nemají oprávnění ke spuštění | Přidání RUN chmod +x <script> do souboru Dockerfile |
| Selhání související se sítí | Externí služby nejsou přístupné | Ověřte nastavení sítě a logiku opakování pokusů |
Vysvětlení životního cyklu akcí Dockeru
Než začnete řešit potíže, je užitečné pochopit, jak se akce kontejneru Dockeru spouštějí.
1. Aktivační událost pracovního postupu
Pracovní postup GitHub Actions se spustí v reakci na nakonfigurovanou událost , například push, pull_requestnebo ruční workflow_dispatch.
2. Nastavení běžce
GitHub zřídí nový virtuální počítač ( spouštěč) pro spuštění pracovního postupu. Běžec připraví prostředí stažením definic akcí a řešením závislostí.
3. Řešení akcí
Pokud akce určuje runs.using: docker v souboru action.yml , GitHub ji rozpozná jako akci založenou na Dockeru.
4. Sestavení nebo stažení obrazu
GitHub sestaví image Dockeru definovanou v akci Dockerfile nebo v případě zadání načítá předem připravenou image. Tento obrázek definuje prostředí, ve kterém se spouští kód akce.
5. Spuštění kontejneru
Spouštěč spustí kontejner Dockeru, připojí pracovní prostor a vloží proměnné prostředí, včetně tajných údajů a vstupů definovaných v pracovním toku.
6. Spuštění vstupního bodu
GitHub spustí entrypoint příkaz ze souboru Dockerfile uvnitř kontejneru. To je místo, kde se spouští logika vlastních akcí, obvykle skript nebo aplikace.
7. Zpracování výsledků
Všechny výstupy nastavené akcí kontejneru jsou zachyceny runnerem a poté předány do následujících kroků pracovního postupu. Po dokončení se kontejner vypne a spouštěč se zahodí.
Poznámka: Akce kontejneru Dockeru se spouštějí v čistém izolovaném prostředí. Stav systému souborů, nainstalované nástroje a proměnné prostředí musí být definovány v souboru Dockerfile.
Techniky ladění
1. Přidání protokolování
Ve skriptu vstupního bodu použijte příkazy echo, printf nebo logging:
echo "Starting Docker action..."
echo "Input VALUE: $INPUT_VALUE"
Protokolujte všechny kritické vstupy a kroky pro diagnostiku, kde k selhání dochází.
2. Místní sestavení a testování
Použití Dockeru na vašem počítači k simulaci chování kontejneru:
docker build -t my-action .
docker run -e INPUT_NAME=value my-action
Zajistěte, aby proměnné prostředí odpovídaly těm, které nastavuje GitHub.
3. Použijte nástroj act CLI pro simulaci pracovních postupů GitHubu
Nainstalujte akci pro místní spuštění pracovních postupů GitHubu:
act -j test-job
Skvělé pro testování akcí Dockeru v pracovních postupech bez vložení do GitHubu.
4. Ověření konfigurace souboru Dockerfile
Ujistěte se, že definujete ENTRYPOINT nebo CMD. Zkopírujte skripty do image a udělte jim oprávnění ke spuštění:
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]
5. Kontrola protokolů GitHubu
Klikněte na neúspěšné spuštění pracovního postupu, rozbalte jednotlivé kroky a prozkoumejte:
- Protokoly sestavení Dockeru
- Standardní výstup a standardní chyba z kontejneru
- Ukončovací kódy a zásobníkové trasování 🔍 často odhalí chybějící balíčky, problémy se syntaxí nebo chyby oprávnění.
Příklad: Chyba vstupního bodu
Error: container_linux.go:380: starting container process caused "exec: \"/entrypoint.sh\": permission denied"
✅ Oprava: Do souboru Dockerfile přidejte run chmod +x /entrypoint.sh.
Mapování proměnných prostředí
| Vstup GitHubu | Proměnná prostředí Dockeru |
|---|---|
with: name: test |
INPUT_NAME=test |
GITHUB_WORKSPACE |
Namapováno do /github/workspace |
GITHUB_EVENT_NAME |
Událost, která aktivovala pracovní postup |
echo "Input was $INPUT_NAME"
echo "Working dir: $GITHUB_WORKSPACE"
Použijte tajemství řešení potíží
Povolte další protokolování přidáním těchto tajných kódů do úložiště nebo organizace:
| Tajný | Popis |
|---|---|
ACTIONS_STEP_DEBUG |
Povolí logování ladění. |
ACTIONS_RUNNER_DEBUG |
Povolí diagnostiku běžce. |
Osvědčené postupy pro ladění akcí Dockeru
| Osvědčený postup | Proč |
|---|---|
| Používejte protokolování hojně | Pomáhá sledovat body selhání. |
| Vždy nastavit chmod +x | Vyhněte se chybám oprávnění u skriptů prostředí |
| Ověření vstupů ve skriptu | Zachytávání chybějících nebo poškozených vstupů v rané fázi |
| Minimalizace závislostí kontejnerů | Menší obrázky se snadněji ladí |
| Místní testování pomocí spuštění nebo akce Dockeru | Rychlejší iterace a okamžitá zpětná vazba |