|
1 | | -# Variables |
2 | | -DOCKER_USERNAME=softvence |
3 | | -PACKAGE_NAME=nestjs_starter |
4 | | -PACKAGE_VERSION=latest |
5 | | - |
6 | | -# Docker image name |
7 | | -APP_IMAGE := $(DOCKER_USERNAME)/$(PACKAGE_NAME):$(PACKAGE_VERSION) |
8 | | - |
9 | | -# Compose files |
10 | | -COMPOSE_FILE := compose.yaml |
11 | | -DEV_COMPOSE_FILE := compose.dev.yaml |
12 | | - |
13 | | -# Docker files |
14 | | -DOCKERFILE := Dockerfile |
15 | | -DEV_DOCKERFILE := Dockerfile.dev |
16 | | - |
17 | | -.PHONY: help build up start stop restart logs logs-api clean push ps dev-up dev-stop dev-logs dev-clean dev-ps local-up local-down local images volumes networks |
| 1 | +.PHONY: help dev up down logs clean build restart |
18 | 2 |
|
19 | 3 | help: |
20 | 4 | @echo "Available commands:" |
21 | | - @echo "" |
22 | | - @echo "Production Commands (Default):" |
23 | | - @echo " make build Build the Docker image" |
24 | | - @echo " make up Start containers (attached)" |
25 | | - @echo " make start Start containers (detached)" |
26 | | - @echo " make stop Stop containers" |
27 | | - @echo " make restart Restart containers" |
28 | | - @echo " make logs Show logs" |
29 | | - @echo " make logs-api Show API logs" |
30 | | - @echo " make clean Remove containers, networks, volumes" |
31 | | - @echo " make push Push image to Docker Hub" |
32 | | - @echo " make ps List production containers" |
33 | | - @echo "" |
34 | | - @echo "Development Commands (dev-* - Full Docker):" |
35 | | - @echo " make dev-up Start full Docker dev environment (detached)" |
36 | | - @echo " make dev-stop Stop Docker dev environment" |
37 | | - @echo " make dev-logs Show logs from Docker dev environment" |
38 | | - @echo " make dev-clean Clean Docker dev environment (remove volumes)" |
39 | | - @echo " make dev-ps List development containers" |
40 | | - @echo "" |
41 | | - @echo "Local Development Commands (local-* - Hybrid):" |
42 | | - @echo " make local-up Start dependencies (DB, Redis) only" |
43 | | - @echo " make local-down Stop dependencies" |
44 | | - @echo " make local Start deps and run 'pnpm dev' locally" |
45 | | - @echo "" |
46 | | - @echo "General / Inspection:" |
47 | | - @echo " make images List images" |
48 | | - @echo " make volumes List volumes" |
49 | | - @echo " make networks List networks" |
50 | | - @echo "" |
| 5 | + @echo " make dev - Start development environment (MongoDB, Redis, Mongo Express)" |
| 6 | + @echo " make up - Start all services including API" |
| 7 | + @echo " make down - Stop all services" |
| 8 | + @echo " make logs - View logs from all services" |
| 9 | + @echo " make clean - Remove all containers, volumes, and images" |
| 10 | + @echo " make build - Build the Docker image" |
| 11 | + @echo " make restart - Restart all services" |
51 | 12 |
|
52 | | -# ========================================== |
53 | | -# Production Commands (Default) |
54 | | -# ========================================== |
55 | | - |
56 | | -build: |
57 | | - docker build -t $(APP_IMAGE) . |
| 13 | +dev: |
| 14 | + docker compose up mongodb mongo-express redis -d |
58 | 15 |
|
59 | 16 | up: |
60 | | - docker compose -f $(COMPOSE_FILE) --profile prod up --remove-orphans |
61 | | - |
62 | | -start: |
63 | | - docker compose -f $(COMPOSE_FILE) --profile prod up -d |
| 17 | + docker compose up -d |
64 | 18 |
|
65 | | -stop: |
66 | | - docker compose -f $(COMPOSE_FILE) --profile prod down |
67 | | - |
68 | | -restart: |
69 | | - docker compose -f $(COMPOSE_FILE) --profile prod restart |
70 | | - docker compose -f $(COMPOSE_FILE) --profile prod up -d |
| 19 | +down: |
| 20 | + docker compose down |
71 | 21 |
|
72 | 22 | logs: |
73 | | - docker compose -f $(COMPOSE_FILE) --profile prod logs -f |
74 | | - |
75 | | -logs-api: |
76 | | - docker compose -f $(COMPOSE_FILE) --profile prod logs -f api |
| 23 | + docker compose logs -f |
77 | 24 |
|
78 | 25 | clean: |
79 | | - docker compose -f $(COMPOSE_FILE) --profile prod down --volumes --remove-orphans |
80 | | - docker rmi $(APP_IMAGE) || true |
81 | | - |
82 | | -push: |
83 | | - docker push $(APP_IMAGE) |
84 | | - |
85 | | -ps: |
86 | | - docker compose -f $(COMPOSE_FILE) --profile prod ps -a |
87 | | - |
88 | | -# ========================================== |
89 | | -# Development Commands (Full Docker) |
90 | | -# ========================================== |
| 26 | + docker compose down -v --rmi all |
91 | 27 |
|
92 | | -dev-up: |
93 | | - docker compose -f $(DEV_COMPOSE_FILE) up -d |
94 | | - |
95 | | -dev-stop: |
96 | | - docker compose -f $(DEV_COMPOSE_FILE) down |
97 | | - |
98 | | -dev-logs: |
99 | | - docker compose -f $(DEV_COMPOSE_FILE) logs -f |
100 | | - |
101 | | -dev-clean: |
102 | | - docker compose -f $(DEV_COMPOSE_FILE) down --volumes --remove-orphans |
103 | | - |
104 | | -dev-ps: |
105 | | - docker compose -f $(DEV_COMPOSE_FILE) ps -a |
106 | | - |
107 | | -# ========================================== |
108 | | -# Local Development Commands (Hybrid) |
109 | | -# ========================================== |
110 | | - |
111 | | -local-up: |
112 | | - docker compose -f $(COMPOSE_FILE) --profile dev up -d |
113 | | - |
114 | | -local-down: |
115 | | - docker compose -f $(COMPOSE_FILE) --profile dev down |
116 | | - |
117 | | -local: |
118 | | - @echo "Starting development services..." |
119 | | - @$(MAKE) local-up |
120 | | - @echo "Waiting for services to be ready..." |
121 | | - @sleep 3 |
122 | | - @echo "Installing dependencies..." |
123 | | - pnpm install |
124 | | - @echo "Starting application in development mode..." |
125 | | - pnpm dev |
126 | | - |
127 | | -# ========================================== |
128 | | -# General / Inspection |
129 | | -# ========================================== |
130 | | - |
131 | | -images: |
132 | | - docker images |
133 | | - |
134 | | -volumes: |
135 | | - docker volume ls |
| 28 | +build: |
| 29 | + docker compose build |
136 | 30 |
|
137 | | -networks: |
138 | | - docker network ls |
| 31 | +restart: |
| 32 | + docker compose restart |
0 commit comments