Files

47 lines
1.8 KiB
Makefile

# Variables
IMAGE_NAME = flat-stack-presejpacky
PORT = 3000
.PHONY: help install build dev start clean lint docker-build docker-run docker-stop
help:
@echo "Available commands:"
@echo " make install - Install project dependencies"
@echo " make dev - Run the application locally in development mode (Vite)"
@echo " make build - Build the production assets"
@echo " make start - Run the production build locally using Express"
@echo " make clean - Remove build artifacts (dist/ and server.js)"
@echo " make lint - Run TypeScript type checks"
@echo " make docker-build - Build the Docker image"
@echo " make docker-run - Run the Docker image locally on port $(PORT)"
@echo " make docker-stop - Stop and remove the Docker container"
install:
docker run -it --rm -v $$(pwd):/app -v /app/node_modules -w /app node:24-alpine npm install
dev:
docker run -it --rm -p $(PORT):$(PORT) -v $$(pwd):/app -v /app/node_modules -w /app node:24-alpine sh -c "npm install && npm run dev"
build:
docker run -it --rm -v $$(pwd):/app -v /app/node_modules -w /app node:24-alpine sh -c "npm install && npm run build"
start:
docker run -it --rm -p $(PORT):$(PORT) -v $$(pwd):/app -v /app/node_modules -w /app node:24-alpine sh -c "npm install && npm run start"
clean:
docker run -it --rm -v $$(pwd):/app -w /app node:24-alpine npm run clean
lint:
docker run -it --rm -v $$(pwd):/app -v /app/node_modules -w /app node:24-alpine sh -c "npm install && npm run lint"
docker-build:
docker build -t $(IMAGE_NAME) .
docker-run:
docker run -d -p $(PORT):$(PORT) --name $(IMAGE_NAME) $(IMAGE_NAME)
@echo "Container is running at http://localhost:$(PORT)"
docker-stop:
docker stop $(IMAGE_NAME) || true
docker rm $(IMAGE_NAME) || true