-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathMakefile
67 lines (52 loc) · 2.12 KB
/
Makefile
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
ifneq (,)
.error This Makefile requires GNU Make.
endif
# -------------------------------------------------------------------------------------------------
# Default configuration
# -------------------------------------------------------------------------------------------------
.PHONY: build
# -------------------------------------------------------------------------------------------------
# Docker configuration
# -------------------------------------------------------------------------------------------------
DIR = .
FILE = Dockerfile
IMAGE = devilbox/python-flask
NO_CACHE =
PYTHON = 3.8
# -------------------------------------------------------------------------------------------------
# Default target
# -------------------------------------------------------------------------------------------------
help:
@echo "build Build Docker image"
@echo "test Test Docker image"
# -------------------------------------------------------------------------------------------------
# Common Targets
# -------------------------------------------------------------------------------------------------
build:
docker build \
--label "org.opencontainers.image.created"="$$(date --rfc-3339=s)" \
--label "org.opencontainers.image.revision"="$$(git rev-parse HEAD)" \
--label "org.opencontainers.image.version"="$(PYTHON)-dev" \
--target dev \
--build-arg ALPINE= \
--build-arg PYTHON=$(PYTHON) \
-t $(IMAGE) \
-f $(DIR)/Dockerfile $(DIR)
@$(MAKE) --no-print-directory tag TAG=$(PYTHON)-dev
test:
docker run --rm $(IMAGE):$(PYTHON)-dev python --version 2>&1 | grep -E 'Python $(PYTHON)[.0-9]+'
.tests/test-project.sh "$(IMAGE)" "$(PYTHON)"
# -------------------------------------------------------------------------------------------------
# CI Targets
# -------------------------------------------------------------------------------------------------
tag:
@if [ "$(TAG)" = "" ]; then \
>&2 echo "Error, you must specify TAG=..."; \
exit 1; \
fi
docker tag $(IMAGE) $(IMAGE):$(TAG)
docker images "$(IMAGE)"
login:
yes | docker login --username $(USER) --password $(PASS)
push: tag
docker push $(IMAGE):$(TAG)