-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
134 lines (84 loc) · 3.24 KB
/
Makefile
File metadata and controls
134 lines (84 loc) · 3.24 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
-include Makefile-extend.mk
# Handle `$ make` run without target
.DEFAULT_GOAL := help
help: ## Display this help screen
@grep -h -E '^[a-zA-Z0-9._-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
#####################
# Docker
#####################
d.up: ## Start all containers
docker compose up -d
d.stop: phpmyadmin.stop mailpit.stop ## Stop all containers
docker compose stop
d.start: ## Start all containers
docker compose start
d.down: phpmyadmin.stop mailpit.stop ## Stop and remove all containers
docker compose down --remove-orphans
d.recreate: ## Recreate all containers
docker compose up --no-deps -d --force-recreate
d.rebuild: ## Rebuild all images and recreate all containers
docker compose up --no-deps -d --build
#####################
# PHP
#####################
php.connect: ## Connect to php container
docker compose exec php bash
php.connect.root: ## Connect to php container as root user
docker compose exec --user=root php bash
php.ini.copy: ## Copy "php.ini" file from php container to local "php" directory
docker compose cp php:"/usr/local/etc/php/php.ini" "./php/php.ini"
#####################
# Composer
#####################
# $ make composer install
# $ make composer update
# $ make goto.php >>> $ composer update -o
composer: ## Run composer command. Eg: $ make composer install
docker compose exec php composer $(filter-out $@,$(MAKECMDGOALS))
#####################
# Nginx
#####################
nginx.connect: ## Connect to nginx container
docker compose exec nginx sh
#####################
# Redis
#####################
redis.connect: ## Connect to redis container
docker compose exec redis sh
#####################
# mysql
#####################
mysql.connect: ## Connect to mysql container
docker compose exec mysql sh
#####################
# PhpMyAdmin
#####################
pma: phpmyadmin ## Alilas of "phpmyadmin" command
phpmyadmin: ## Runs phpmyadmin container
docker run --rm -d --name LAMP_phpmyadmin --network lamp-net -e PMA_HOST=mysql -e PMA_USER=root -e PMA_PASSWORD=root -p 9200:80 phpmyadmin:latest
@echo "Goto: http://localhost:9200"
# Stops phpmyadmin container (it will be removed automatically because of --rm flag)
# NOTE: first '-' prefix tells make to continue executing the subsequent commands even if the docker stop command fails.
phpmyadmin.stop: ## Stops & Remove phpmyadmin container
-docker stop LAMP_phpmyadmin
#####################
# eMail testing tool
#####################
# https://hub.docker.com/r/axllent/mailpit
mailpit: ## Runs mailpit container
docker run --rm -d --name=LAMP_mailpit --network lamp-net -p 8025:8025 -v ./db/mailpit-data:/data -e MP_DATABASE=/data/mailpit.db axllent/mailpit
@echo "Goto: http://localhost:8025"
# Stops mailpit container (it will be removed automatically because of --rm flag)
mailpit.stop: ## Stops & Remove mailpit container
-docker stop LAMP_mailpit
#####################
# Certs
#####################
# $ make create-cert example.loc
create-cert: ## Create SSL certificate. Eg: $ make create-cert example.loc
bash certs/create-cert.sh $(filter-out $@,$(MAKECMDGOALS))
#####################
# Logs
#####################
log.nginx: ## see access log
docker compose logs -f nginx