1 # Copyright (c) 2019 AT&T Intellectual Property.
2 # Copyright (c) 2019 Nokia.
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
8 # http://www.apache.org/licenses/LICENSE-2.0
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
16 #------------------------------------------------------------------------------
18 #------------------------------------------------------------------------------
19 ifndef MAKE_DOCKER_TARGETS
20 MAKE_DOCKER_TARGETS:=1
22 .PHONY: docker-build docker-clean docker-stop FORCE
28 @echo $($*_DCKR_FULLNAME)
32 docker build --target $* $($*_DCKR_B_OPTS) -t $($*_DCKR_FULLNAME) -f $($*_DCKR_FILE) .
34 .docker-services-drun_%:
35 docker network create --driver bridge $($*_DCKR_FULLNAME)-running_network
36 docker run $($*_DCKR_R_OPTS) -d --name $($*_DCKR_FULLNAME)-running_redis --network $($*_DCKR_FULLNAME)-running_network redis
38 docker-irun_%: .docker-services-drun_%
39 docker run $($*_DCKR_R_OPTS) --name $($*_DCKR_FULLNAME)-running_xapp --network $($*_DCKR_FULLNAME)-running_network -e DBAAS_SERVICE_HOST=$($*_DCKR_FULLNAME)-running_redis $($*_DCKR_FULLNAME) /bin/bash
41 docker-irun-mounted_%: .docker-services-drun_%
42 docker run $($*_DCKR_R_OPTS) -v $(shell pwd):/ws/go/src/${PACKAGEURL} --workdir "/ws/go/src/${PACKAGEURL}" --name $($*_DCKR_FULLNAME)-running_xapp --network $($*_DCKR_FULLNAME)-running_network -e DBAAS_SERVICE_HOST=$($*_DCKR_FULLNAME)-running_redis $($*_DCKR_FULLNAME) /bin/bash
44 docker-run_%: .docker-services-drun_%
45 docker run $($*_DCKR_R_OPTS) --name $($*_DCKR_FULLNAME)-running_xapp --network $($*_DCKR_FULLNAME)-running_network -e DBAAS_SERVICE_HOST=$($*_DCKR_FULLNAME)-running_redis $($*_DCKR_FULLNAME)
48 docker rm -f $($*_DCKR_FULLNAME)-running_xapp &> /dev/null || true
49 docker rm -f $($*_DCKR_FULLNAME)-running_redis &> /dev/null || true
50 docker network rm $($*_DCKR_FULLNAME)-running_network &> /dev/null || true
52 docker-irun-stop_%: docker-irun_%
53 docker rm -f $($*_DCKR_FULLNAME)-running_xapp &> /dev/null || true
54 docker rm -f $($*_DCKR_FULLNAME)-running_redis &> /dev/null || true
55 docker network rm $($*_DCKR_FULLNAME)-running_network &> /dev/null || true
57 docker-irun-mounted-stop_%: docker-irun-mounted_%
58 docker rm -f $($*_DCKR_FULLNAME)-running_xapp &> /dev/null || true
59 docker rm -f $($*_DCKR_FULLNAME)-running_redis &> /dev/null || true
60 docker network rm $($*_DCKR_FULLNAME)-running_network &> /dev/null || true
62 docker-run-stop_%: docker-run_%
63 docker rm -f $($*_DCKR_FULLNAME)-running_xapp &> /dev/null || true
64 docker rm -f $($*_DCKR_FULLNAME)-running_redis &> /dev/null || true
65 docker network rm $($*_DCKR_FULLNAME)-running_network &> /dev/null || true
67 docker-clean_%: docker-stop_%
68 docker rmi $($*_DCKR_FULLNAME) || true
72 docker-build: DCKR_TARGETS:=
73 docker-build: $$(DCKR_TARGETS)
76 docker-clean: DCKR_TARGETS:=
77 docker-clean: $$(DCKR_TARGETS)
80 docker-stop: DCKR_TARGETS:=
81 docker-stop: $$(DCKR_TARGETS)
85 #------------------------------------------------------------------------------
87 #------------------------------------------------------------------------------
90 DCKR_FILE:="Dockerfile"
94 BUILD_PREFIX:="${USER}-"
98 #------------------------------------------------------------------------------
100 #------------------------------------------------------------------------------
102 ifndef $(DCKR_NAME)_DCKR_B_PREFIX
103 $(DCKR_NAME)_DCKR_B_PREFIX:=$(BUILD_PREFIX)
106 ifndef $(DCKR_NAME)_DCKR_FILE
107 $(DCKR_NAME)_DCKR_FILE:=$(DCKR_FILE)
110 $(DCKR_NAME)_DCKR_B_PREFIX:=$(subst /,_,$(shell echo $($(DCKR_NAME)_DCKR_B_PREFIX) | tr '[:upper:]' '[:lower:]'))
112 $(DCKR_NAME)_DCKR_FULLNAME:=$($(DCKR_NAME)_DCKR_B_PREFIX)$(DCKR_NAME)
114 $(DCKR_NAME)_DCKR_B_OPTS:=${DCKR_B_OPTS}
115 $(DCKR_NAME)_DCKR_B_OPTS:=$($(DCKR_NAME)_DCKR_B_OPTS) --network=host
118 $(DCKR_NAME)_DCKR_B_OPTS:=$($(DCKR_NAME)_DCKR_B_OPTS) --build-arg PACKAGEURL=${PACKAGEURL}
122 $(DCKR_NAME)_DCKR_B_OPTS:=$($(DCKR_NAME)_DCKR_B_OPTS) --build-arg BUILD_PREFIX=${BUILD_PREFIX}
126 $(DCKR_NAME)_DCKR_R_OPTS:=${DCKR_R_OPTS}
127 $(DCKR_NAME)_DCKR_R_OPTS:=$($(DCKR_NAME)_DCKR_R_OPTS) --rm -i --net=host
128 $(DCKR_NAME)_DCKR_R_OPTS:=$($(DCKR_NAME)_DCKR_R_OPTS)$(shell test -t 0 && echo ' -t')
129 $(DCKR_NAME)_DCKR_R_OPTS:=$($(DCKR_NAME)_DCKR_R_OPTS)$(shell test -e /etc/localtime && echo ' -v /etc/localtime:/etc/localtime:ro')
130 $(DCKR_NAME)_DCKR_R_OPTS:=$($(DCKR_NAME)_DCKR_R_OPTS)$(shell test -e /var/run/docker.sock && echo ' -v /var/run/docker.sock:/var/run/docker.sock')
131 $(DCKR_NAME)_DCKR_R_OPTS:=$($(DCKR_NAME)_DCKR_R_OPTS)$(shell test -e ${HOME}/.docker && echo ' -v ${HOME}/.docker:/ws/.docker:ro')
132 $(DCKR_NAME)_DCKR_R_OPTS:=$($(DCKR_NAME)_DCKR_R_OPTS)$(shell test -e ${HOME}/.netrc && echo ' -v ${HOME}/.netrc:/ws/.netrc:ro')
133 $(DCKR_NAME)_DCKR_R_OPTS:=$($(DCKR_NAME)_DCKR_R_OPTS)$(shell test -e ${HOME}/.ssh && echo ' -v ${HOME}/.ssh:/ws/.ssh:ro')
134 $(DCKR_NAME)_DCKR_R_OPTS:=$($(DCKR_NAME)_DCKR_R_OPTS)$(shell test -e ${HOME}/.gitconfig && echo ' -v ${HOME}/.gitconfig:/ws/.gitconfig:ro')
137 docker-build: DCKR_TARGETS+=docker-build_$(DCKR_NAME)
139 docker-clean: DCKR_TARGETS+=docker-clean_$(DCKR_NAME)
141 docker-stop: DCKR_TARGETS+=docker-stop_$(DCKR_NAME)