Inception/Makefile

92 lines
3.0 KiB
Makefile

# **************************************************************************** #
# #
# :::::::: #
# Makefile :+: :+: #
# +:+ #
# By: whaffman <whaffman@student.codam.nl> +#+ #
# +#+ #
# Created: 2025/05/12 15:33:56 by whaffman #+# #+# #
# Updated: 2025/05/22 16:23:30 by whaffman ######## odam.nl #
# #
# **************************************************************************** #
DOCKER_COMPOSE = docker compose
DOCKER_COMPOSE_FILE = ./srcs/docker-compose.yml
DOCKER_ENV_FILE = ./srcs/.env
DATA_DIR = /home/whaffman/data
WORDPRESS_DATA_DIR = $(DATA_DIR)/wordpress
MARIADB_DATA_DIR = $(DATA_DIR)/mariadb
UID := $(shell id -u)
DC = $(DOCKER_COMPOSE) -f $(DOCKER_COMPOSE_FILE) --env-file $(DOCKER_ENV_FILE) --project-name ""
.PHONY: all build up down remove
all: build up
$(DATA_DIR):
@echo "$(gub)Creating data directory...$(reset)"
@mkdir -p $(DATA_DIR)
@chmod 777 $(DATA_DIR)
$(WORDPRESS_DATA_DIR): $(DATA_DIR)
@echo "$(gub)Creating WordPress data directory...$(reset)"
@mkdir -p $(WORDPRESS_DATA_DIR)
@chmod 777 $(WORDPRESS_DATA_DIR)
$(MARIADB_DATA_DIR): $(DATA_DIR)
@echo "$(gub)Creating MariaDB data directory...$(reset)"
@mkdir -p $(MARIADB_DATA_DIR)
@chmod 777 $(MARIADB_DATA_DIR)
build: $(WORDPRESS_DATA_DIR) $(MARIADB_DATA_DIR)
@echo "$(gub)Building Docker containers...$(reset)"
$(DC) build --build-arg HOST_UID=$(UID)
up: $(WORDPRESS_DATA_DIR) $(MARIADB_DATA_DIR)
@echo "$(gub)Starting Docker containers...$(reset)"
$(DC) up -d
down:
@echo "$(gub)Stopping Docker containers...$(reset)"
$(DC) down
clean:
@echo "$(gub)Cleaning up Docker containers...$(reset)"
$(DC) down --rmi local --volumes --remove-orphans
@echo "$(gub)Removing data directories...$(reset)"
@rm -rf $(DATA_DIR)
@echo "$(gub)Removing Docker networks...$(reset)"
@docker network prune -f
@echo "$(gub)Removing Docker volumes...$(reset)"
@docker volume prune -f
@echo "$(gub)Removing Docker images...$(reset)"
@docker rmi -f $(shell docker images -q)
logs:
@echo "$(gub)Displaying logs...$(reset)"
@$(DC) logs
ps:
@echo "$(gub)Displaying running containers...$(reset)"
@$(DC) ps
@echo "$(gub)Displaying networks...$(reset)"
@docker network ls
@echo "$(gub)Displaying volumes...$(reset)"
@docker volume ls
@echo "$(gub)Displaying images...$(reset)"
@docker images
@echo "$(gub)Displaying all containers...$(reset)"
@docker ps -a
# Colors
green:=$(shell tput setaf 2)
bold:=$(shell tput bold)
uncerline:=$(shell tput smul)
gub:=$(green)$(underline)$(bold)
reset:=$(shell tput sgr0)