39 lines
1.0 KiB
Makefile
39 lines
1.0 KiB
Makefile
SHELL := /bin/zsh
|
|
COMPOSE_FILE := docker-compose.yml
|
|
PROJECT_NAME := diyaa
|
|
|
|
.PHONY: start stop restart logs ps build ensure-env ensure-project
|
|
|
|
ensure-env:
|
|
@if [ ! -f .env ]; then \
|
|
if [ -f .env.example ]; then \
|
|
cp .env.example .env; \
|
|
echo ".env created from .env.example"; \
|
|
else \
|
|
echo ".env file is missing and .env.example was not found."; \
|
|
exit 1; \
|
|
fi; \
|
|
fi
|
|
|
|
ensure-project: ensure-env
|
|
@grep -q '^COMPOSE_PROJECT_NAME=$(PROJECT_NAME)$$' .env || \
|
|
(echo "COMPOSE_PROJECT_NAME in .env must be '$(PROJECT_NAME)' to avoid project mix-up."; exit 1)
|
|
|
|
start: ensure-project
|
|
docker compose --env-file .env -f $(COMPOSE_FILE) up -d --build
|
|
@echo "diyaa services are up"
|
|
|
|
stop: ensure-project
|
|
docker compose --env-file .env -f $(COMPOSE_FILE) down
|
|
|
|
restart: stop start
|
|
|
|
logs: ensure-project
|
|
docker compose --env-file .env -f $(COMPOSE_FILE) logs -f --tail=200
|
|
|
|
ps: ensure-project
|
|
docker compose --env-file .env -f $(COMPOSE_FILE) ps
|
|
|
|
build: ensure-project
|
|
docker compose --env-file .env -f $(COMPOSE_FILE) build
|