Makefile
# import config.
# You can change the default config with `make cnf="config_special.env" build`
cnf ?= .env
include $(cnf)
export $(shell sed 's/=.*//' $(cnf))
# If you see pwd_unknown showing up, this is why. Re-calibrate your system.
PWD ?= pwd_unknown
# HELP
# This will output the help for each task
# thanks to https://marmelab.com/blog/2016/02/29/auto-documented-makefile.html
.PHONY: help
help: ## aide
@awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST)
.DEFAULT_GOAL := help
# DOCKER TASKS
# shell is the first target. So instead of: make shell cmd="whoami", we can type: make cmd="whoami".
# more examples: make shell cmd="ls /production", make shell cmd="echo hello container space".
# leave the double quotes to prevent commands overflowing in makefile (things like && would break)
# special chars: '',"",|,&&,||,*,^,[], should all work. Except "$" and "`", if someone knows how, please let me know!).
# escaping (\) does work on most chars, except double quotes (if someone knows how, please let me know)
# i.e. works on most cases. For everything else perhaps more useful to upload a script and execute that.
CMD_ARGUMENTS ?= $(cmd)
shell:
ifeq ($(CMD_ARGUMENTS),)
# no command is given, default to shell
docker exec -ti $(APP_DOCKER_CONTAINER) /bin/sh
else
# run the command
docker exec -ti $(APP_DOCKER_CONTAINER) /bin/sh -c "$(CMD_ARGUMENTS)"
endif
dataprof: ## Ligne de commande bash avec user dataprof
docker exec -ti -u $(APP_USER) $(APP_DOCKER_CONTAINER) /bin/bash
root: ## Ligne de commande bash avec user root
docker exec -ti -u root $(APP_DOCKER_CONTAINER) /bin/bash
psql: ## Ligne de commande psql avec user postgres
docker exec -ti -u postgres $(POSTGRES_DOCKER_CONTAINER) psql
build: ## build permet de builder l'image
docker compose -f $(APP_DOCKER_COMPOSE) build
build_no_cache: ## build permet de builder l'image sans cache
docker compose -f $(APP_DOCKER_COMPOSE) build --no-cache
service: ## Lancer le contenair en mode déttaché (background service)
docker compose -f $(APP_DOCKER_COMPOSE) up -d
down: ## Arrêter et supprimer les conteneurs, les réseaux
docker compose -f $(APP_DOCKER_COMPOSE) down -v
destroy: ## Arrêter et supprimer les conteneurs, les réseaux et les volumes nommés, déclarés et attachés aux conteneurs.
docker compose -f $(APP_DOCKER_COMPOSE) rm -s -v $(APP_DOCKER_CONTAINER)
stop: ## Stop services
docker compose -f $(APP_DOCKER_COMPOSE) stop $(APP_DOCKER_SERVICE)
clean: destroy ## destroy > remove Nettoyer les fichiers générés/compilés
remove
restart: stop ## stop > service Redémarre les services
service
remove: stop ## stop > docker rm $(APP_NAME) Arrêter et supprimer le conteneur en cours d'exécution
docker rm $(APP_DOCKER_CONTAINER)
pgadmin: ## docker compose -f $(APP_DOCKER_COMPOSE) stop > up -d ${PGADMIN_DOCKER_CONTAINER} Lancer le contenair pgadmin en mode déttaché
docker compose -f $(APP_DOCKER_COMPOSE) stop ${PGADMIN_DOCKER_CONTAINER}
docker compose -f $(APP_DOCKER_COMPOSE) up -d ${PGADMIN_DOCKER_CONTAINER}
logs: ## Récupérer les derniéres 100 lignes des logs d'un conteneur
docker compose -f $(APP_DOCKER_COMPOSE) logs -f
ps: ## Liste des contenaires en cours d'éxcution du $(APP_DOCKER_COMPOSE) en question
docker compose -f $(APP_DOCKER_COMPOSE) ps
start: down## Démarrer les contenaires du $(APP_DOCKER_COMPOSE) en question
#docker rmi $(APP_DOCKER_IMAGE)
#docker rmi $(POSTGRES_DOCKER_IMAGE)
make build
make service
Pour voir toutes les commandes, tapez uniquement make