64 lines
1.6 KiB
Makefile
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
|