basaHoushanApi/Makefile

83 lines
2.8 KiB
Makefile

# Define variables for better maintainability
COMPOSE_FILE := docker-compose.yml
PROJECT_NAME := houshan # Replaced space with a hyphen
# Default target
all: up
## Build, (re)create, start, and attach to containers
up:
@echo "Bringing up the services..."
sudo docker compose -f $(COMPOSE_FILE) -p $(PROJECT_NAME) up --build --remove-orphans -d
## Stop and remove containers, networks, images, and volumes
down:
@echo "Stopping and removing the services..."
sudo docker compose -f $(COMPOSE_FILE) -p $(PROJECT_NAME) down --remove-orphans
## Rebuild and restart the services
rebuild:
@echo "Rebuilding the services..."
sudo docker compose -f $(COMPOSE_FILE) -p $(PROJECT_NAME) up --build --force-recreate --remove-orphans
## Stop the running containers (without removing them)
stop:
@echo "Stopping the running containers..."
sudo docker compose -f $(COMPOSE_FILE) -p $(PROJECT_NAME) stop
## Show the status of the containers
ps:
@echo "Displaying the status of the containers..."
sudo docker compose -f $(COMPOSE_FILE) -p $(PROJECT_NAME) ps
## View the recent logs of the running containers
logs:
@echo "Displaying the logs of the containers (use Ctrl+C to exit)..."
sudo docker compose -f $(COMPOSE_FILE) -p $(PROJECT_NAME) logs -f --since 0s
## View the logs of the running containers
logs-all:
@echo "Displaying the logs of the containers (use Ctrl+C to exit)..."
sudo docker compose -f $(COMPOSE_FILE) -p $(PROJECT_NAME) logs -f
## Clean up unused Docker resources (volumes, networks, images)
clean:
@echo "Cleaning up unused Docker resources..."
sudo docker system prune -af --volumes
## Get shell from app
shell-app:
@echo "Getting shell from app..."
sudo docker compose -f $(COMPOSE_FILE) -p $(PROJECT_NAME) exec -it app /bin/bash
## restore data
db-restore:
@echo "Restore pg_dump data to db..."
sudo docker compose -f $(COMPOSE_FILE) -p $(PROJECT_NAME) exec -i -T database pg_restore -U root -d houshan --verbose < ./restore/bots.sql
## Help message
help:
@echo "Available targets:"
@echo " up - Start the services (builds if necessary)"
@echo " down - Stop and remove the services"
@echo " rebuild - Rebuild and restart the services"
@echo " stop - Stop the running containers"
@echo " ps - Show the status of the containers"
@echo " logs - View the logs of the running containers (use -f to follow logs in real-time)"
@echo " clean - Clean up unused Docker resources"
.PHONY: all up down rebuild stop ps logs clean help
# db-init (don't):
# aerich init -t src.settings.TORTOISE_ORM
# db-migrate:
# aerich migrate --name ""
# db-upgrade:
# export DATABASE_URL=postgres://root:XXXXX@localhost:54921/houshan
# aerich upgrade
# db-copy:
# pg_dump -h himalayas.liara.cloud -p 30555 -U root -d houshan -F c -t bots | pv > bots.sql