-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
72 lines (58 loc) · 2.26 KB
/
Copy pathMakefile
File metadata and controls
72 lines (58 loc) · 2.26 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
.PHONY: prod dev test deploy down pull db-shell generate-secrets logs ps restart clean help
DC = docker compose
ENV ?= dev
prod:
$(DC) \
-p exam-hacker-prod \
-f docker-compose.yml \
--env-file .env.prod \
up -d --build
dev:
$(DC) \
-p exam-hacker-dev \
-f docker-compose.yml \
-f docker-compose.dev.yml \
--env-file .env.dev \
up --build --watch
test:
$(DC) \
-p exam-hacker-test \
-f docker-compose.yml \
-f docker-compose.test.yml \
--env-file .env.test \
up --build -d
deploy:
git pull origin main && \
$(DC) \
-p exam-hacker-prod \
-f docker-compose.yml \
--env-file .env.prod \
up -d --build
down:
$(DC) -p exam-hacker-$(ENV) down
pull:
$(DC) -p exam-hacker-$(ENV) pull
db-shell:
. ./.env.$(ENV) && $(DC) -p exam-hacker-$(ENV) exec db psql -U $$POSTGRES_USER -d $$POSTGRES_DB
generate-secrets:
openssl genpkey -algorithm RSA -out jwt_private.pem -pkeyopt rsa_keygen_bits:2048 && openssl rsa -pubout -in jwt_private.pem -out jwt_public.pem && mkdir auth/secrets && mkdir quiz_core/secrets && mkdir quiz_hub/secrets && cp jwt_public.pem jwt_private.pem auth/secrets/ && cp jwt_public.pem quiz_core/secrets/ && cp jwt_public.pem quiz_hub/secrets/
logs:
$(DC) -p exam-hacker-$(ENV) logs -f
ps:
$(DC) -p exam-hacker-$(ENV) ps
restart:
$(DC) -p exam-hacker-$(ENV) restart
clean:
$(DC) -p exam-hacker-$(ENV) down -v
help:
@echo "make dev - start app in dev mode (dev docker compose up)"
@echo "make test - start app in test mode (test docker compose up)"
@echo "make prod - start app in production mode (prod docker compose up"
@echo "make down ENV=... - stop app (docker compose down)"
@echo "make db-shell ENV=... - internactive database shell (docker exec -it psql)"
@echo "make logs ENV=... - attach to the logs (docker logs -f)"
@echo "make ps ENV=... - show running containers (docker compose ps"
@echo "make restart ENV=... - restart app (docker compose restart)"
@echo "make clean ENV=... - stop app deleting all volumes (docker compose down -v)"
@echo "make help - show this message"
@echo "NOTE: some commands use ENV=... option. If you dont specify it, it's dev by default, so for example if you do 'make db-shell', it will treat it as 'make db-shell ENV=dev'"