Add Docker build and run workflow
This commit is contained in:
56
Makefile
Normal file
56
Makefile
Normal file
@@ -0,0 +1,56 @@
|
||||
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)
|
||||
Reference in New Issue
Block a user