====== Gendoc - Generic Docker Compose Stack apps (DCS) ====== gendoc is CatchMedia specific set of conventions and aliases to manage Docker Compose Stack applications (DCS). See also: [[dap|Docker Apps with Persistency]] - DCS+keepalived+haproxy We try to use gendoc/dcs instead of k8 because k8-based apps are notoriously harder to setup, manage and backup. The complexity price for HA and scalability just does not pay off for most applications we use. ===== Conventions ===== * aliases entity is installed * DCS app has /opt/DCS_NAME/docker-compose.yml file * The DCS might require dedicated IP using macvlan. If dedicated outbound source IP is needed, then Firewall->NAT->Outbound tuning on FW might be necessary * docker-compose.yml might have additional custom fields: x-ska: start_on_boot: "no" on_demand_port: 25565 * for DCS with persistency, /opt/DCS_NAME should be separate LVM volume, mounted on boot. Same for production-grade apps, to protect from disk full situations. * systemd service gendoc starts DCS apps with start_on_boot=yes ===== Aliases ===== Aliases are actually scripts that sit in /opt/aliases/bin (should be in PATH). They must be run from the home directory of DCS - /opt/DCS_NAME, for example /opt/pamail * ''dcup'' - start DCS app * ''dcdown'' - stop DCS app * ''dclog'' - see runtime log * ''dcch'' - try to run bash or sh inside of the container (if container has shell in it). If you must get in as root, use this cmd (example for mysql_padb_a1): ''docker exec -u 0 -it mysql_padb_a1 /bin/bash -l'' * ''dcii'' - see information on the DCS * ''dcmy'' - for mysql containers - connect to mysql server using mysql CLI * ''dcmyv'' - for mysql containers - connect to mysql server using mysql CLI over Virtual IP * ''dcrc'' - for redis containers - connect to redis server using redis CLI * ''docps'' - See list of DCS running: docps