Preskoči na glavno vsebino

Prevádzka ABRA Flexi v Dockeri (komunitný návod)

Je možné prevádzkovať ABRA Flexi v Dockeri v produkčnom prostredí?

Avtor: Petr Pech

Ide o komunitný návod, nie oficiálnu dokumentáciu ABRA Flexi. Z našej strany v takomto prípade nezaručujeme, že je postup funkčný.

Autor: Tomáš Valoušek

Táto konfigurácia je navrhnutá pre prostredie Docker Swarm, ktoré využívame na našich serveroch, ale mala by byť plne kompatibilná aj s Docker Compose. FlexiBee a databáza PostgreSQL 13 bežia v tom istom kontajneri, čo síce nie je ideálne z pohľadu dockerovej filozofie (jeden proces na kontajner), ale prevádzka databázy v samostatnom kontajneri by vyžadovala úpravy inštalačných skriptov FlexiBee. Tieto úpravy by síce boli jednorazovo realizovateľné, ale skomplikovali by proces pravidelných aktualizácií.


Ako na to?

1. Stiahnutie aktuálnej verzie FlexiBee

Stiahnite si aktuálnu verziu FlexiBee vo formáte „Univerzálny balíček pre Debian (Ubuntu) Linux“ z oficiálnej stránky.

Uložte súbor do adresára s konfiguračnými súbormi.


2. Konfigurácia

Nižšie je zoznam konfiguračných súborov, ktoré budete potrebovať upraviť alebo skontrolovať.

Docker konfiguračné súbory:

  • Dockerfile: Upravte názov stiahnutého inštalačného súboru FlexiBee.

  • Makefile: Zjednodušuje build a nasadenie, ak používate make.

  • cron-backup: Denne vykonáva dump celej databázy a ukladá ho do volume pre jednoduché zálohovanie.

  • default-flexibee: Konfigurácia pre FlexiBee, ktorá sa kopíruje do /etc/default/flexibee.

  • docker-compose.yml: Skontrolujte názov a verziu image.

  • docker-stack.yml: Dôkladne nastavte volumes pre perzistentné ukladanie dát. Táto konfigurácia je použitá v produkcii. FlexiBee prevádzkujeme na porte 55434. Dôležité je aj nastavenie locales na cs_CZ.UTF-8!

  • flexibee-server.xml: Konfigurácia kopírovaná do /etc/flexibee/flexibee-server.xml.

  • pg_hba.conf: Konfigurácia prístupu k PostgreSQL.

  • postgresql-flexibee.conf: Konfigurácia PostgreSQL kopírovaná do /etc/postgresql/13/flexibee/conf.d/postgresql-flexibee.conf.

  • supervisord.conf: supervisord zaisťuje spustenie FlexiBee a cron procesu.


3. Build kontajnera

Spustite príkaz:

docker-compose build

4. Push image do repozitára

Na nahratie image do repozitára použite:

docker-compose push

5. Nasadenie kontajnera

Nasadenie aplikácie pomocou Docker Stack:

docker stack deploy -c docker-stack.yml flexibee

6. Ukončenie kontajnera

Na ukončenie a odstránenie služby (dáta zostanú zachované):

docker stack rm flexibee

7. Diagnostika

Beží kontajner?

docker ps -a | grep flexibee

Log kontajnera (ten je väčšinou prázdny, nič sa neloguje)

docker logs idkontejneru

Pripojenie do kontajnera

docker exec -it idkontejneru bash

ABRA Flexi

tail -f /var/log/flexibee.log

PostgreSQL

tail -f /var/log/postgresql/postgresql-13-flexibee.log
Ste s tem dobili odgovor na svoje vprašanje?