47 lines
1.8 KiB
Makefile
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
|