11# Makefile para automatizar setup do projeto PHP com Docker
22
3- include .env
4-
53.PHONY : up install_dependencies generate_proxies migrate_database load_fixtures install_frontend compile_frontend generate_keys
64
7- # Função para bloquear comandos em produção
8- guard-not-prod :
9- ifeq ($(APP_ENV ) ,prod)
10- $(error Este comando não pode ser executado em produção)
11- endif
12-
135# Inicia os serviços Docker em modo detached
146up :
157 docker compose up -d
@@ -28,7 +20,7 @@ container_php:
2820
2921# Instala dependências dentro do contêiner PHP
3022install_dependencies :
31- docker compose exec -T php bash -c " composer install --ignore-platform-req=ext-mongodb "
23+ docker compose exec -T php bash -c " COMPOSER_MEMORY_LIMIT=-1 composer install"
3224
3325# Gera os arquivos de Proxies do MongoDB
3426generate_proxies :
@@ -46,56 +38,45 @@ migrate_odm:
4638 docker compose exec -T php bash -c " php bin/console app:mongo:migrations:execute"
4739
4840# Executa as fixtures de dados
49- load_fixtures : guard-not-prod
41+ load_fixtures :
5042 docker compose exec -T php bash -c " php bin/console doctrine:fixtures:load -n --purge-exclusions=city --purge-exclusions=state"
5143
5244# Instala dependências do frontend
5345install_frontend :
5446 docker compose exec -T php bash -c " php bin/console importmap:install"
5547
5648# Compila os arquivos do frontend
57- compile_frontend : reset
49+ compile_frontend :
5850 docker compose exec -T php bash -c " php bin/console asset-map:compile"
5951
60- # Abre uma instância gráfica do cypress
61- open_cypress : load_fixtures
62- xhost +local:
63- CYPRESS_MODE=open docker compose --profile tests up
64-
6552# Executa as fixtures de dados e os testes de front-end
66- tests_front : guard-not-prod
67- if [ " $( fixtures) " != " no" ]; then \
68- make load_fixtures; \
69- fi ;
53+ tests_front : load_fixtures
7054 docker compose up cypress
7155
7256# Executa as fixtures de dados e os testes de back-end
73- tests_back : guard-not-prod
57+ tests_back :
7458 if [ " $( fixtures) " != " no" ]; then \
7559 make load_fixtures; \
7660 fi ;
7761 docker compose exec -T php bash -c " php bin/paratest $( filename) --no-coverage"
7862
7963# Executa as fixtures de dados e os testes de back-end
80- tests_back_coverage : guard-not-prod
81- if [ " $( fixtures) " != " no" ]; then \
82- make load_fixtures; \
83- fi ;
64+ tests_back_coverage : load_fixtures
8465 docker compose exec -T php bash -c " php -d memory_limit=512M bin/paratest $( filename) "
8566
8667# Limpa o cache do projeto
8768reset :
8869 docker compose exec -T php bash -c " php bin/console cache:clear"
8970
9071# Limpa a cache e o banco
91- reset-deep : guard-not-prod
72+ reset-deep :
9273 rm -rf var/storage
93- rm -rf assets/uploads
74+ docker compose exec -T php bash -c " rm -rf assets/uploads"
9475 rm -rf assets/vendor
9576 rm -rf public/assets
96- rm -rf var/cache
97- rm -rf var/log
98- docker compose exec -T php bash -c " php bin/console cache:clear"
77+ docker compose exec -T php bash -c " rm -rf var/cache"
78+ docker compose exec -T php bash -c " rm -rf var/log"
79+ docker compose exec -T php bash -c " php -d memory_limit=-1 bin/console cache:clear"
9980 docker compose exec -T php bash -c " php bin/console doctrine:mongodb:schema:drop --search-index"
10081 docker compose exec -T php bash -c " php bin/console doctrine:mongodb:schema:drop --collection"
10182 docker compose exec -T php bash -c " php bin/console doctrine:mongodb:schema:drop --db"
@@ -112,9 +93,6 @@ style:
11293 docker compose exec -T php bash -c " php vendor/bin/phpcs --config-set installed_paths src/Standards"
11394 docker compose exec -T php bash -c " php vendor/bin/phpcs"
11495
115- create-admin-user :
116- docker compose exec -T php bash -c " php bin/console app:create-admin-user"
117-
11896# Gera as chaves de autenticação JWT
11997generate_keys :
12098 docker compose exec -T php bash -c " php bin/console lexik:jwt:generate-keypair --overwrite -n"
@@ -124,11 +102,5 @@ copy_dist:
124102 cp phpcs.xml.dist phpcs.xml
125103 cp phpunit.xml.dist phpunit.xml
126104
127- permissions :
128- mkdir -p var/
129- mkdir -p vendor/
130- mkdir -p config/jwt
131- chmod -R 775 assets/ config/jwt var/ vendor/ public/
132-
133105# Comando para rodar todos os passos juntos
134- setup : guard-not-prod up install_dependencies copy_dist reset-deep generate_proxies migrate_database load_fixtures install_frontend compile_frontend generate_keys
106+ setup : up install_dependencies copy_dist reset-deep generate_proxies migrate_database load_fixtures install_frontend compile_frontend generate_keys
0 commit comments