IMAGE_NAME ?= notes-vault-client IMAGE_TAG ?= latest CONTAINER_NAME ?= notes-vault-client HOST_PORT ?= 8081 NOTES_API_UPSTREAM ?= http://host.docker.internal:8080 IMAGE := $(IMAGE_NAME):$(IMAGE_TAG) .PHONY: help install build docker-build docker-run docker-stop docker-restart docker-logs docker-clean help: @echo "Targets:" @echo " make install Install Node dependencies" @echo " make build Build the Vite app into dist/" @echo " make docker-build Build the Docker image" @echo " make docker-run Run the Docker container" @echo " make docker-stop Stop the running Docker container" @echo " make docker-restart Rebuild and restart the Docker container" @echo " make docker-logs Follow container logs" @echo " make docker-clean Remove the Docker image" @echo "" @echo "Variables:" @echo " IMAGE_NAME=$(IMAGE_NAME)" @echo " IMAGE_TAG=$(IMAGE_TAG)" @echo " CONTAINER_NAME=$(CONTAINER_NAME)" @echo " HOST_PORT=$(HOST_PORT)" @echo " NOTES_API_UPSTREAM=$(NOTES_API_UPSTREAM)" install: npm ci build: npm run build docker-build: docker build -t $(IMAGE) . docker-run: docker rm -f $(CONTAINER_NAME) >/dev/null 2>&1 || true docker run --rm -d \ --name $(CONTAINER_NAME) \ -p $(HOST_PORT):80 \ -e NOTES_API_UPSTREAM=$(NOTES_API_UPSTREAM) \ $(IMAGE) @echo "Running $(IMAGE) at http://localhost:$(HOST_PORT)" docker-stop: docker stop $(CONTAINER_NAME) docker-restart: docker-build docker-run docker-logs: docker logs -f $(CONTAINER_NAME) docker-clean: docker image rm $(IMAGE)