api-client/Makefile
2026-05-06 15:06:35 +02:00

64 lines
1.6 KiB
Makefile

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
BACKEND_IMAGE := $(REGISTRY)/$(NAMESPACE)/$(IMAGE_PREFIX)-backend:$(TAG)
APP_IMAGE := $(REGISTRY)/$(NAMESPACE)/$(IMAGE_PREFIX)-app:$(TAG)
SH_ADMIN_IMAGE := $(REGISTRY)/$(NAMESPACE)/$(IMAGE_PREFIX)-sh-admin:$(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 backend --tag $(BACKEND_IMAGE) .
docker build --file prod.Dockerfile --target app --tag $(APP_IMAGE) .
docker build --file prod.Dockerfile --target sh_admin --tag $(SH_ADMIN_IMAGE) .
docker-push-images:
docker push $(BACKEND_IMAGE)
docker push $(APP_IMAGE)
docker push $(SH_ADMIN_IMAGE)
docker-build-push-images: docker-build-images docker-push-images