Repository navigation
Expand file tree
/
Copy pathMakefile
More file actions
119 lines (91 loc) · 2.69 KB
/
Copy pathMakefile
File metadata and controls
119 lines (91 loc) · 2.69 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
# Makefile for Docker Compose setup (WordPress + Nginx + MariaDB)
LOGIN=wlucke
# LOGIN := $(USER)
SSH_PORT= 4243
DEPLOY = Desktop/inception
SRC = srcs
ENV = $(SRC)/.env
COMPOSE = docker compose -f $(SRC)/docker-compose.yml --env-file $(ENV)
.PHONY: help build up down restart logs clean re
# run: setup build up
run: build up fix
@echo "If you want further commands type \"make help\"."
help:
@echo "Just make calls run."
@echo "Usage: make [target]"
@echo ""
@echo "Targets:"
@echo " run build and up is called"
@echo " setup Add host to /etc/hosts on machine"
@echo " build Build all Docker images"
@echo " up Start all services (detached)"
@echo " down Stop and remove containers"
@echo " restart Restart all services"
@echo " logs Tail logs from all containers"
@echo " clean Stop, remove, and clear volumes"
@echo " re Clean and rebuild everything"
# Setup
certs:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout secrets/certs/$(LOGIN).42.fr.key \
-out secrets/certs/$(LOGIN).42.fr.crt \
-subj "/C=DE/ST=Berlin/L=Berlin/O=42/OU=Inception/CN=$(LOGIN).42.fr"
dirs:
mkdir -p /home/$(LOGIN)/data/mariadb
mkdir -p /home/$(LOGIN)/data/wordpress
chown -R $(LOGIN):$(LOGIN) /home/$(LOGIN)/data
chmod -R 755 /home/$(LOGIN)/data
hosts:
sudo sh -c 'echo "127.0.0.1 $(LOGIN).42.fr" >> /etc/hosts'
# Basics
build:
$(COMPOSE) build
up:
mkdir -p /home/$(LOGIN)/data/mariadb /home/$(LOGIN)/data/wordpress
$(COMPOSE) up -d --build nginx wordpress mariadb
down:
$(COMPOSE) down
restart: down up
logs:
$(COMPOSE) logs -f
clean:
$(COMPOSE) down --volumes --remove-orphans
fclean: clean
rm -rf /home/$(USER)/data/mariadb/* /home/$(USER)/data/wordpress/*
docker image prune -af
docker network prune -f
fix:
docker exec -it mariadb mariadb_add_wordpress.sh
docker exec -it mariadb mariadb_post_wordpress.sh
re: clean build up fix
erase:
sudo rm -rf /home/$(LOGIN)/data/wordpress/*
sudo rm -rf /home/$(LOGIN)/data/mariadb/*
mkdir -p /home/$(LOGIN)/data/wordpress /home/$(LOGIN)/data/mariadb
# Bonus
adminer:
$(COMPOSE) up -d adminer
adminer_clean:
$(COMPOSE) stop adminer
$(COMPOSE) rm -f adminer
# Remote Access
# remote:
# make -f secrets/Makefile $(TARGET)
send:
rsync -avz -e "ssh -p $(SSH_PORT)" . $(LOGIN)@127.0.0.1:/home/$(LOGIN)/$(DEPLOY)
ssh:
ssh $(LOGIN)@127.0.0.1 -p $(SSH_PORT)
firefox:
ssh -X $(LOGIN)@127.0.0.1 -p $(SSH_PORT) "firefox --private-window &"
http:
curl -v http://$(LOGIN).42.fr
https:
curl -v https://$(LOGIN).42.fr
network:
docker network inspect inception
volumes:
docker volume ls
docker volume inspect wordpress_data
docker volume inspect mariadb_data
ps:
docker compose ps