-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
73 lines (59 loc) · 2.13 KB
/
Makefile
File metadata and controls
73 lines (59 loc) · 2.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# ------------------------------------------------------------
# Project-wide Docker Makefile
# ------------------------------------------------------------
# Default image settings
IMAGE ?= python-fastapi # or php-fpm
VERSION ?= dev
ORG = simplicateca
IMAGE_PATH = images/docker-$(IMAGE)
# Derived full image name
IMAGE_NAME = $(ORG)/$(IMAGE)
# ------------------------------------------------------------
# Build & Run Locally
# ------------------------------------------------------------
.PHONY: build
build:
@echo "🚀 Building $(IMAGE_NAME):$(VERSION) and tagging as latest"
docker build -t $(IMAGE_NAME):$(VERSION) -t $(IMAGE_NAME):latest $(IMAGE_PATH)
.PHONY: run
run:
@echo "▶️ Running $(IMAGE_NAME):$(VERSION)"
docker run -it --rm -p 8000:8000 -v $(PWD):/app $(IMAGE_NAME):$(VERSION)
.PHONY: shell
shell:
docker run -it --rm -v $(PWD):/app $(IMAGE_NAME):$(VERSION) bash
# ------------------------------------------------------------
# Docker Hub Publishing
# ------------------------------------------------------------
.PHONY: login
login:
@echo "🔑 Logging into Docker Hub..."
docker login -u $(DOCKERHUB_USERNAME)
.PHONY: push
push:
@if [ "$(VERSION)" = "dev" ]; then \
echo "❌ Cannot push dev builds to Docker Hub. Use VERSION=X.Y.Z"; exit 1; \
fi
@echo "📤 Pushing $(IMAGE_NAME):$(VERSION) and latest to Docker Hub"
docker push $(IMAGE_NAME):$(VERSION)
docker push $(IMAGE_NAME):latest
# ------------------------------------------------------------
# Testing Helpers
# ------------------------------------------------------------
.PHONY: test-build
test-build: build
@echo "✅ Build finished. Images available:"
docker images | grep $(IMAGE_NAME)
.PHONY: test-dhub
test-dhub: test-build login push
@echo "✅ Docker Hub push test finished!"
# ------------------------------------------------------------
# GitHub Workflow Kickoff
# ------------------------------------------------------------
.PHONY: push-develop
push-develop:
@git checkout develop || true
@git add .
@git commit -m "chore: trigger develop build for $(IMAGE)" || true
@git push origin develop
@echo "✅ Commit pushed to develop for $(IMAGE) CI build"