From 03a0809c6add3fe990dcfb8b2053be5b4f26cd91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cau=C3=AA=20Faleiros?= Date: Wed, 25 Mar 2026 15:57:46 -0300 Subject: [PATCH] feat(ops): add mysql backup service to docker compose --- docker-compose.yml | 38 ++++++++++++++++++++++++++------------ 1 file changed, 26 insertions(+), 12 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 53c97d5..1d52691 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,12 +5,11 @@ version: "3.7" ########################################################## services: - # ===== KRAYIN CRM ===== crm: image: gitea.blyzer.com.br/blyzer/growup-crm:latest ports: - - "8090:80" # Ajuste a porta externa conforme necessário + - "8090:80" # Ajuste a porta externa conforme necessário volumes: - growup_data:/var/www/html/storage - growup_public:/var/www/html/public/storage @@ -61,7 +60,7 @@ services: - node.role == manager resources: limits: - cpus: '1' + cpus: "1" memory: 1024M command: [ @@ -71,20 +70,35 @@ services: "--default-authentication-plugin=mysql_native_password", "--max-allowed-packet=512MB", "--expire_logs_days=7", - "--max_binlog_size=100M" + "--max_binlog_size=100M", ] + # ===== BACKUP MYSQL ===== + backup-mysql: + image: fradelg/mysql-cron-backup + deploy: + replicas: 1 + restart_policy: + condition: on-failure + placement: + constraints: + - node.role == manager + environment: + MYSQL_HOST: mysql + MYSQL_USER: root + MYSQL_PASS: ${DB_PASSWORD} + CRON_TIME: "55 2 * * *" # Roda todo dia exatamente às 02:55 da manhã + MAX_BACKUPS: 3 # Mantém apenas os 3 últimos dias + INIT_BACKUP: "1" # Faz um backup imediatamente ao ligar o container + volumes: + - /opt/backups_db:/backup + networks: + - network_public + # ===== REDIS ===== redis: image: redis:latest - command: - [ - "redis-server", - "--appendonly", - "yes", - "--port", - "6379" - ] + command: ["redis-server", "--appendonly", "yes", "--port", "6379"] volumes: - redis_data:/data networks: