This repository was archived by the owner on Jul 31, 2025. It is now read-only.
forked from hlefevregit/ft_transcendence
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
139 lines (110 loc) · 4.89 KB
/
Copy pathMakefile
File metadata and controls
139 lines (110 loc) · 4.89 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
# **************************************************************************** #
# #
# ::: :::::::: #
# Makefile :+: :+: :+: #
# +:+ +:+ +:+ #
# By: hulefevr <hulefevr@student.42.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2025/02/26 17:45:30 by hulefevr #+# #+# #
# Updated: 2025/06/30 14:16:05 by hulefevr ### ########.fr #
# #
# **************************************************************************** #
# Variables
PROJECT_NAME = ft_transcendence
DEV_COMPOSE = docker-compose.dev.yml
PROD_COMPOSE = docker-compose.yml
.PHONY: build up down restart logs prune clean rebuild \
build-dev up-dev down-dev restart-dev logs-dev rebuild-dev \
build-prod up-prod down-prod restart-prod logs-prod rebuild-prod \
reset-db log \
#########################################################
### ------------------ ENV DEV ---------------------- ###
#########################################################
build-dev:
docker-compose -f $(DEV_COMPOSE) -p $(PROJECT_NAME) build
up-dev:
docker-compose -f $(DEV_COMPOSE) -p $(PROJECT_NAME) up -d
down-dev:
docker-compose -f $(DEV_COMPOSE) -p $(PROJECT_NAME) down
restart-dev:
docker-compose -f $(DEV_COMPOSE) -p $(PROJECT_NAME) down
docker-compose -f $(DEV_COMPOSE) -p $(PROJECT_NAME) up -d
logs-dev:
docker-compose -f $(DEV_COMPOSE) -p $(PROJECT_NAME) logs -f
re-dev:
$(DOCKER_COMPOSE) -f $(DOCKER_COMPOSE_FILE) down --volumes --remove-orphans --rmi all
docker volume prune -f
docker-compose -f $(DEV_COMPOSE) -p $(PROJECT_NAME) up --build -d
rebuild-dev:
make reset_vault 2>/dev/null || true
touch ./vault/secrets/.env
docker-compose -f $(DEV_COMPOSE) -p $(PROJECT_NAME) down -v --remove-orphans
docker system prune -af
docker volume prune -f
docker-compose -f $(DEV_COMPOSE) -p $(PROJECT_NAME) build --no-cache
docker-compose -f $(DEV_COMPOSE) -p $(PROJECT_NAME) up -d
reset_vault:
docker exec -it ft_transcendence-vault-1 chmod -R 777 ./vault/file
rm -rf ./vault/data ./vault/secrets
mkdir -p ./vault/data ./vault/secrets
#########################################################
### ------------------ ENV PROD --------------------- ###
#########################################################
build-prod:
docker-compose -f $(PROD_COMPOSE) -p $(PROJECT_NAME) build
up-prod:
docker-compose -f $(PROD_COMPOSE) -p $(PROJECT_NAME) up -d
down-prod:
docker-compose -f $(PROD_COMPOSE) -p $(PROJECT_NAME) down
restart-prod:
docker-compose -f $(PROD_COMPOSE) -p $(PROJECT_NAME) down
docker-compose -f $(PROD_COMPOSE) -p $(PROJECT_NAME) up -d
logs-prod:
docker-compose -f $(PROD_COMPOSE) -p $(PROJECT_NAME) logs -f
rebuild-prod:
docker-compose -f $(PROD_COMPOSE) -p $(PROJECT_NAME) down -v --remove-orphans
docker system prune -af
docker volume prune -f
docker-compose -f $(PROD_COMPOSE) -p $(PROJECT_NAME) build --no-cache
docker-compose -f $(PROD_COMPOSE) -p $(PROJECT_NAME) up -d
#########################################################
### ------------------ GLOBALES --------------------- ###
#########################################################
clean:
docker stop $$(docker ps -aq) || true
docker rm $$(docker ps -aq) || true
docker rmi -f $$(docker images -aq) || true
docker volume rm $$(docker volume ls -q) || true
docker network prune -f || true
prune:
docker-compose -f $(DEV_COMPOSE) -p $(PROJECT_NAME) down -v --remove-orphans
docker-compose -f $(PROD_COMPOSE) -p $(PROJECT_NAME) down -v --remove-orphans
docker system prune -af
docker volume prune -f
logs:
@mkdir -p ./logs
@for container in $$(docker ps --format '{{.Names}}'); do \
echo "Redirecting logs for $$container"; \
docker logs -f $$container > ./logs/$$container.log 2>&1 & \
done
reset-db:
@echo "🗑️ Suppression de la base SQLite..."
rm -f ./backend/dev.db
@echo "🔄 Réinitialisation de la base avec Prisma..."
cd backend/main && npx prisma migrate reset --force
@echo "✅ Base de données réinitialisée."
rebuild:
@if [ -z "$(name)" ]; then \
echo "❌ Error: please provide a container name (e.g. 'make rebuild name=backend')"; \
exit 1; \
fi
@echo "🔨 Rebuilding container: $(name)"
docker-compose -f $(DEV_COMPOSE) -p $(PROJECT_NAME) build --no-cache $(name)
docker-compose -f $(DEV_COMPOSE) -p $(PROJECT_NAME) up -d $(name)
log:
@if [ -z "$(name)" ]; then \
echo "❌ Error: please provide a container name (e.g. 'make log name=backend')"; \
exit 1; \
fi
@echo "📜 Displaying logs for container: $(name)"
docker-compose -f $(DEV_COMPOSE) -p $(PROJECT_NAME) logs -f $(name)