-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
53 lines (40 loc) · 1.29 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
DOCKER_USERNAME ?= denisb4
APPLICATION_NAME ?= content-server
GIT_HASH ?= $(shell git log --format="%h" -n 1)
PORT ?= 3000
_BUILD_ARGS_TAG ?= ${GIT_HASH}
_BUILD_ARGS_RELEASE_TAG ?= latest
_BUILD_ARGS_DOCKERFILE ?= Dockerfile
_BUILD_ARGS_NAME ?=
_builder:
docker build --tag ${DOCKER_USERNAME}/${APPLICATION_NAME}:${_BUILD_ARGS_TAG} -f ${_BUILD_ARGS_DOCKERFILE} .
_pusher:
docker push ${DOCKER_USERNAME}/${APPLICATION_NAME}:${_BUILD_ARGS_TAG}
_releaser:
docker pull ${DOCKER_USERNAME}/${APPLICATION_NAME}:${_BUILD_ARGS_TAG}
docker tag ${DOCKER_USERNAME}/${APPLICATION_NAME}:${_BUILD_ARGS_TAG} ${DOCKER_USERNAME}/${APPLICATION_NAME}:latest
docker push ${DOCKER_USERNAME}/${APPLICATION_NAME}:${_BUILD_ARGS_RELEASE_TAG}
_runner:
docker run -v $(shell pwd)/.data/content:/app --publish ${PORT}:8080 ${DOCKER_USERNAME}/${APPLICATION_NAME}:${_BUILD_ARGS_TAG}
build:
$(MAKE) _builder
push:
$(MAKE) _pusher
release:
$(MAKE) _releaser
run:
$(MAKE) _runner
build_%:
$(MAKE) _builder \
-e _BUILD_ARGS_TAG="$*-${GIT_HASH}" \
-e _BUILD_ARGS_DOCKERFILE="Dockerfile.$*"
push_%:
$(MAKE) _pusher \
-e _BUILD_ARGS_TAG="$*-${GIT_HASH}"
release_%:
$(MAKE) _releaser \
-e _BUILD_ARGS_TAG="$*-${GIT_HASH}" \
-e _BUILD_ARGS_RELEASE_TAG="$*-latest"
run_%:
$(MAKE) _runner \
-e _BUILD_ARGS_TAG="$*-${GIT_HASH}"