integraçao site
This commit is contained in:
81
Makefile
Normal file
81
Makefile
Normal file
@@ -0,0 +1,81 @@
|
||||
# Makefile for DNSBlock
|
||||
|
||||
# Variables
|
||||
DOCKER_COMPOSE = docker-compose
|
||||
DB_CONTAINER = dnsblock-db
|
||||
APP_CONTAINER = dnsblock-app
|
||||
MYSQL_CMD = docker exec -i $(DB_CONTAINER) mysql -uroot -p"$$(grep DB_ROOT_PASSWORD .env | cut -d '=' -f2)" "$$(grep DB_NAME .env | cut -d '=' -f2)" --default-character-set=utf8mb4
|
||||
|
||||
# Colors
|
||||
GREEN=\033[0;32m
|
||||
NC=\033[0m # No Color
|
||||
|
||||
.PHONY: help setup up down restart logs shell import reset
|
||||
|
||||
help:
|
||||
@echo "Sistema de Gerenciamento DNSBlock"
|
||||
@echo "Comandos disponíveis:"
|
||||
@echo " make setup - Configura o arquivo .env inicial"
|
||||
@echo " make up - Inicia os containers em background"
|
||||
@echo " make down - Para e remove os containers"
|
||||
@echo " make restart - Reinicia os containers"
|
||||
@echo " make logs - Exibe logs dos containers"
|
||||
@echo " make shell - Abre um shell no container da aplicação"
|
||||
@echo " make import - Importa o schema e seeds do banco de dados (Corrige Encoding)"
|
||||
@echo " make reset - [PERIGO] Reseta tudo: down, apaga dados, up e importa"
|
||||
|
||||
setup:
|
||||
@if [ ! -f .env ]; then \
|
||||
cp .env.example .env; \
|
||||
echo "$(GREEN).env criado a partir do exemplo. Edite-o com suas configurações!$(NC)"; \
|
||||
else \
|
||||
echo "Arquivo .env já existe."; \
|
||||
fi
|
||||
|
||||
up:
|
||||
@echo "$(GREEN)Iniciando containers...$(NC)"
|
||||
$(DOCKER_COMPOSE) up -d
|
||||
|
||||
down:
|
||||
@echo "$(GREEN)Parando containers...$(NC)"
|
||||
$(DOCKER_COMPOSE) down
|
||||
|
||||
restart: down up
|
||||
|
||||
logs:
|
||||
$(DOCKER_COMPOSE) logs -f
|
||||
|
||||
shell:
|
||||
docker exec -it $(APP_CONTAINER) bash
|
||||
|
||||
import:
|
||||
@echo "$(GREEN)Importando banco de dados com correção de encoding (UTF-8)...$(NC)"
|
||||
@# Aguarda o banco estar pronto (simples sleep, idealmente seria um wait-for-it)
|
||||
@sleep 5
|
||||
@$(MYSQL_CMD) < database/schema.sql
|
||||
@$(MYSQL_CMD) < database/seeds.sql
|
||||
@echo "$(GREEN)Importação concluída com sucesso!$(NC)"
|
||||
|
||||
reset:
|
||||
@echo "$(GREEN)Resetando ambiente...$(NC)"
|
||||
$(DOCKER_COMPOSE) down
|
||||
sudo rm -rf mysql_data
|
||||
$(DOCKER_COMPOSE) up -d
|
||||
@echo "Aguardando inicialização do banco de dados..."
|
||||
@sleep 10
|
||||
make import
|
||||
|
||||
backup:
|
||||
@echo "$(GREEN)Gerando backup do banco de dados...$(NC)"
|
||||
@mkdir -p backups
|
||||
@docker exec $(DB_CONTAINER) mysqldump -u root -p"$$(grep DB_ROOT_PASSWORD .env | cut -d '=' -f2)" --all-databases > backups/backup_$$(date +%Y%m%d_%H%M%S).sql
|
||||
@echo "$(GREEN)Backup salvo em backups/backup_$$(date +%Y%m%d_%H%M%S).sql$(NC)"
|
||||
|
||||
restore:
|
||||
@if [ -z "$(FILE)" ]; then \
|
||||
echo "Erro: Especifique o arquivo de backup com FILE=caminho/do/arquivo.sql"; \
|
||||
exit 1; \
|
||||
fi
|
||||
@echo "$(GREEN)Restaurando banco de dados a partir de $(FILE)...$(NC)"
|
||||
@docker exec -i $(DB_CONTAINER) mysql -u root -p"$$(grep DB_ROOT_PASSWORD .env | cut -d '=' -f2)" < $(FILE)
|
||||
@echo "$(GREEN)Restauração concluída!$(NC)"
|
||||
Reference in New Issue
Block a user