Healthcheck a depends_on v docker-compose

depends_on pouze zajistí, že kontejner, na který je depends_on, nastartuje jako první. Nezajišťuje ale, že daná servisa je připravená. K tomu je potřeba nastavit healthcheck. Jako příklad ukážu elasticsearch a logstash, kdy logstah čeká na elasticsearch.

elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:8.10.2
    container_name: elasticsearch
    healthcheck:
      test: [ "CMD-SHELL", "curl -s http://localhost:9200 | grep -q 'You Know, for Search'" ]
      interval: 10s
      retries: 5
      start_period: 20s
      timeout: 5s

logstash:
    image: docker.elastic.co/logstash/logstash:8.10.2
    container_name: logstash
    depends_on:
      elasticsearch:
        condition: service_healthy
  • service_healthy znamená, že v tomto případě elasticsearch je healthy (zdravý) a podmínky tohoto „zdraví“ jsou definovány v části healthcheck.
  • CMD-SHELL umožňuje spustit příkazy v kontejneru
  • curl -s http://localhost:9200 získá odpověď z dané url. Pokud servisa neodpovídá, dostává: Failed to connect to localhost port 9200 after 0 ms: Connection refused
  • grep -q 'You Know, for Search' v odpovědi získané curlem se snaží získat řetězec 'You Know, for Search', který se vrací v případě, že elasticsearch odpovídá. Pokud tento řetězec nezíská, tak po několika pokusech (retries) docker-compose skončí hláškou: dependency failed to start: container elasticsearch is unhealthy

Zdroj: https://docs.docker.com/compose/how-tos/startup-order/

Grepování v docker lozích

Pomocí příkazu docker logs nazev_kontejneru je možné zobrazit logy. K jejich grepování (vyhledávání pomocí grep) je ale potřeba použít příkaz docker logs nazev_kontejneru 2>&1 | grep hledaný výraz. Je to proto, že kontejner loguje do stderr a roura (pipe) funguje pouze pro stdout.

1 znamená standardní výstup
2 znamená error výstup
2>&1 říká, že se má poslat error výstup na standardní výstup

Zdroje:

Update prohlížeče Brave na Linux Mint

Postup je podobný instalaci, která je popsána na oficiálních stránkách.

sudo apt install curl

sudo curl -fsSLo /usr/share/keyrings/brave-browser-archive-keyring.gpg https://brave-browser-apt-release.s3.brave.com/brave-browser-archive-keyring.gpg

echo "deb [signed-by=/usr/share/keyrings/brave-browser-archive-keyring.gpg] https://brave-browser-apt-release.s3.brave.com/ stable main"|sudo tee /etc/apt/sources.list.d/brave-browser-release.list

sudo apt update

Rozdíl je v poslením kroku, kdy se zadá:

sudo apt install --only-upgrade brave-browser

Ve výpisu v konzoli je pak možné vidět následující:

Preparing to unpack .../brave-browser_1.56.20_amd64.deb ...
Unpacking brave-browser (1.56.20) over (1.30.86) ...
Setting up brave-browser (1.56.20) ...

Root oprávnění v docker kontejneru

Docker nabízí příkaz exec, který spustí zadaný příkaz v běžícím kontejneru. Pokud tedy máme kontejner s názvem postgres, který obsahuje PostgreSQL databázi, pak příkazem docker exec -it postgres psql -U postgres spustíme v kontejneru postgres příkaz psql s paramatrem -U (uživatelské jméno) postgres. Tím se přihlásíme k databázi běžící v kontejneru.

Někdy můžeme chtít v kontejneru vykonávat nějakou činnost (např. vytvářet složky), k čemuž ale občas potřebujeme root oprávnění. Takto se vytvoříme složku realms v kontejneru s názvem keycloak. Do kontejneru se přihlásíme jako root: docker exec -u 0 keycloak bash -c "mkdir realms"

Lens zobrazí pouze černou obrazovku

Pokud by vám přestal fungovat Lens (spustí se, připojí se ke clusteru, ale zobrazí pouze černou obrazovku), tak řešením je nastavit v preferencích (File -> Preferences -> Kubernetes) Download kubectl binaries matching the Kubernetes cluster version na false

a následně vymazat obsah složky ~/.config/Lens/lens-local-storage a Lens restartovat.


Zdroj: github.com/lensapp/lens/issues/4018

Zobrazení složky ve stromové struktuře v Ubuntu

K zobrazení složky ve stromové struktuře slouží program tree.

sudo apt install tree

Nyní stačí být ve složce, kterou chcete zobrazit a napsat tree.

tree
.
├── A
├── B
│   ├── BB
│   │   ├── one.txt
│   │   └── two.txt
│   └── BBB
│       └── three.txt
└── C
    ├── CC
    ├── CCC
    │   └── four.txt
    └── CCCC

Volba -a zobrazí také skryté soubory.

tree -a
.
├── A
│   └── .hidden.txt
├── B
│   ├── BB
│   │   ├── one.txt
│   │   └── two.txt
│   └── BBB
│       └── three.txt
└── C
    ├── CC
    │   └── another_hidden.txt
    ├── CCC
    │   └── four.txt
    └── CCCC

Pokud chcete pouze adresáře, použijte volbu -d.

Číst dál

Přidání adresáře do path v Linuxu

Pro přidání adresáře do proměnné PATH otevřete soubor ./bashrc, který se nachází v domovském adresáři a na konec souboru napište

export PATH="$HOME/bin:$PATH"

Tento příkaz přidá adresář /bin nacházející se v domovském adresáři do proměnné PATH. Kontrolu můžete provést napsáním echo $PATH do terminálu. Tento příkaz vypíše hodnotu proměnné PATH.

Zdroj: linuxize.com/post/how-to-add-directory-to-path-in-linux/