-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMakefile
176 lines (154 loc) · 5.14 KB
/
Makefile
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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
docker_status := $(shell systemctl is-active docker)
docker_enabled := $(shell systemctl is-enabled docker)
environment := "dev"
help:
@echo "Utilize: make <comando> [<argumentos>]"
@echo
@echo "Comandos disponíveis:"
@echo
@echo "Gerenciar docker"
@echo " docker-start Inicia o serviço do docker"
@echo " docker-stop Para o serviço do docker"
@echo " docker-enable Faz docker iniciar automaticamente ao iniciar o sistema"
@echo " docker-disable Faz docker não iniciar automaticamente ao iniciar o sistema"
@echo
@echo "Gerenciar containers da aplicação:"
@echo " up Efetua build da imagem, (re)cria e inicia todos os containers da aplicação"
@echo " build Efetua (re)build da imagem da aplicação"
@echo " start Inicia todos os containers da aplicação (já devem ter sido criados)"
@echo " stop Interrompe todos os containers da aplicação"
@echo " remove Remove todos os containers da aplicação"
@echo " status Exibe o status dos containers da aplicação"
@echo " logs Exibe os logs da aplicação"
@echo " bash Abre um bash dentro do container da aplicação"
@echo " cmd Executa um comando dentro do container da aplicação"
@echo " Exemplo: make cmd command=\"python3 manage.py shell\""
@echo
@echo "Executar comandos do Django:"
@echo " startapp Cria um novo app. Argumentos necessários: name"
@echo " Exemplo: make startapp name=auth"
@echo " makemigrations Gerar migrations para o projeto"
@echo " migrate Aplicar migrations ao banco"
@echo " test Roda os testes da aplicação"
@echo " collectstatic Coletar arquivos estáticos"
# Gerenciar docker
docker-start:
ifeq (${docker_status}, inactive)
@sudo systemctl start docker
@echo "VoxPop: Serviço do Docker iniciado com sucesso!"
else
@echo "VoxPop: Serviço do Docker já está ativo!"
endif
docker-stop:
ifeq (${docker_status}, active)
@sudo systemctl stop docker
@echo "VoxPop: Serviço do Docker interrompido com sucesso!"
else
@echo "VoxPop: Serviço do Docker já está inativo!"
endif
docker-enable:
ifeq (${docker_enabled}, disabled)
@sudo systemctl enable docker
@echo "VoxPop: Serviço do Docker agora iniciará junto com o sistema!"
else
@echo "VoxPop: Serviço do Docker já inicia junto com o sistema!"
endif
docker-disable:
ifeq (${docker_enabled}, enabled)
@sudo systemctl disable docker
@echo "VoxPop: Serviço do Docker deixará de iniciar junto com o sistema!"
else
@echo "VoxPop: Serviço do Docker já não inicia junto com o sistema!"
endif
# Gerenciar containers da aplicação
compose_file := "provision/dev/docker-compose.yml"
up:
ifeq (${docker_status}, active)
@sudo docker-compose -f ${compose_file} up -d --force-recreate
@echo "VoxPop: Containers (re)criados e iniciados com sucesso!"
else
@echo "VoxPop: Serviço do Docker está inativo!"
endif
build:
ifeq (${docker_status}, active)
@sudo docker-compose -f ${compose_file} build
@echo "VoxPop: (Re)build de imagem efetuado com sucesso!"
else
@echo "VoxPop: Serviço do Docker está inativo!"
endif
start:
ifeq (${docker_status}, active)
@sudo docker-compose -f ${compose_file} start
@echo "VoxPop: Containers da aplicação iniciados com sucesso!"
else
@echo "VoxPop: Serviço do Docker está inativo!"
endif
stop:
ifeq (${docker_status}, active)
@sudo docker-compose -f ${compose_file} stop
@echo "VoxPop: Containers da aplicação interrompidos com sucesso!"
else
@echo "VoxPop: Serviço do Docker está inativo!"
endif
remove:
ifeq (${docker_status}, active)
@sudo docker-compose -f ${compose_file} rm
@echo "VoxPop: Containers da aplicação removidos com sucesso!"
else
@echo "VoxPop: Serviço do Docker está inativo!"
endif
status:
ifeq (${docker_status}, active)
@sudo docker-compose -f ${compose_file} ps
else
@echo "VoxPop: Serviço do Docker está inativo!"
endif
logs:
ifeq (${docker_status}, active)
@sudo docker-compose -f ${compose_file} logs -f
else
@echo "VoxPop: Serviço do Docker está inativo!"
endif
bash:
ifeq (${docker_status}, active)
@sudo docker-compose -f ${compose_file} exec api bash
else
@echo "VoxPop: Serviço do Docker está inativo!"
endif
cmd:
ifeq (${docker_status}, active)
@sudo docker-compose -f ${compose_file} exec api ${command}
else
@echo "VoxPop: Serviço do Docker está inativo!"
endif
# Executar comandos do Django
startapp:
ifeq (${docker_status}, active)
@sudo docker-compose -f ${compose_file} exec api python3 manage.py startapp ${name}
else
@echo "VoxPop: Serviço do Docker está inativo!"
endif
makemigrations:
ifeq (${docker_status}, active)
@sudo docker-compose -f ${compose_file} exec api python3 manage.py makemigrations
else
@echo "VoxPop: Serviço do Docker está inativo!"
endif
migrate:
ifeq (${docker_status}, active)
@sudo docker-compose -f ${compose_file} exec api python3 manage.py migrate
else
@echo "VoxPop: Serviço do Docker está inativo!"
endif
test:
ifeq (${docker_status}, active)
@sudo docker-compose -f ${compose_file} exec api python3 manage.py test -v 2
else
@echo "VoxPop: Serviço do Docker está inativo!"
endif
collectstatic:
ifeq (${docker_status}, active)
@sudo docker-compose -f ${compose_file} exec api python3 manage.py collectstatic --noinput
else
@echo "VoxPop: Serviço do Docker está inativo!"
endif