COMPOSE := docker compose ENV_FILE := .env ENV_EXAMPLE := .env.example PROD_COMPOSE := docker-compose.prod.yml REGISTRY ?= forge.lclr.dev NAMESPACE ?= thibaud-lclr IMAGE_PREFIX ?= api-client TAG ?= latest AIO_IMAGE := $(REGISTRY)/$(NAMESPACE)/$(IMAGE_PREFIX)-aio:$(TAG) PROD_ENV := API_CLIENT_REGISTRY=$(REGISTRY) API_CLIENT_NAMESPACE=$(NAMESPACE) API_CLIENT_IMAGE_PREFIX=$(IMAGE_PREFIX) API_CLIENT_TAG=$(TAG) .PHONY: up dev-up prod-up down dev-down prod-down logs dev-logs prod-logs ps dev-ps prod-ps ensure-env docker-build-images docker-push-images docker-build-push-images up: dev-up dev-up: ensure-env $(COMPOSE) up -d --build prod-up: ensure-env $(PROD_ENV) $(COMPOSE) -f $(PROD_COMPOSE) up -d down: dev-down dev-down: $(COMPOSE) down prod-down: $(PROD_ENV) $(COMPOSE) -f $(PROD_COMPOSE) down logs: dev-logs dev-logs: $(COMPOSE) logs -f prod-logs: $(PROD_ENV) $(COMPOSE) -f $(PROD_COMPOSE) logs -f ps: dev-ps dev-ps: $(COMPOSE) ps prod-ps: $(PROD_ENV) $(COMPOSE) -f $(PROD_COMPOSE) ps ensure-env: @test -f $(ENV_FILE) || cp $(ENV_EXAMPLE) $(ENV_FILE) docker-build-images: docker build --file prod.Dockerfile --target aio --tag $(AIO_IMAGE) . docker-push-images: docker push $(AIO_IMAGE) docker-build-push-images: docker-build-images docker-push-images