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
26 @echo $($*_DCKR_FULLNAME)
30 test -z "$${SSH_PRIVATE_KEY}" && SSH_PRIVATE_KEY=$$(cat $${HOME}/.ssh/id_rsa);\
31 docker build --target $* $($*_DCKR_B_OPTS) --build-arg SSH_PRIVATE_KEY="$${SSH_PRIVATE_KEY}" -t $($*_DCKR_FULLNAME) -f $($*_DCKR_FILE) . ;\
35 docker run $($*_DCKR_R_OPTS) $($*_DCKR_FULLNAME) /bin/bash
37 docker-irun-mounted_%:
38 docker run $($*_DCKR_R_OPTS) -v $(shell pwd):/ws/go/src/${PACKAGEURL} --workdir "/ws/go/src/${PACKAGEURL}" $($*_DCKR_FULLNAME) /bin/bash
41 docker run $($*_DCKR_R_OPTS) $($*_DCKR_FULLNAME)
43 docker-run-redished_%:
46 docker network create --driver bridge $($*_DCKR_FULLNAME)-run_network;\
47 docker run $($*_DCKR_R_OPTS) -d --name $($*_DCKR_FULLNAME)-run_redis --network $($*_DCKR_FULLNAME)-run_network redis;\
48 docker run $($*_DCKR_R_OPTS) --name $($*_DCKR_FULLNAME)-run_xapp --network $($*_DCKR_FULLNAME)-run_network -e DBAAS_SERVICE_HOST=$($*_DCKR_FULLNAME)-run_redis $($*_DCKR_FULLNAME);\
50 docker stop $($*_DCKR_FULLNAME)-run_redis;\
51 docker network rm $($*_DCKR_FULLNAME)-run_network;\
56 docker rmi $($*_DCKR_FULLNAME) || true
60 docker-build: DCKR_TARGETS:=
61 docker-build: $$(DCKR_TARGETS)
64 docker-clean: DCKR_TARGETS:=
65 docker-clean: $$(DCKR_TARGETS)
69 #------------------------------------------------------------------------------
71 #------------------------------------------------------------------------------
74 DCKR_FILE:="Dockerfile"
78 BUILD_PREFIX:="${USER}-"
82 #------------------------------------------------------------------------------
84 #------------------------------------------------------------------------------
86 ifndef $(DCKR_NAME)_DCKR_B_PREFIX
87 $(DCKR_NAME)_DCKR_B_PREFIX:=$(BUILD_PREFIX)
90 ifndef $(DCKR_NAME)_DCKR_FILE
91 $(DCKR_NAME)_DCKR_FILE:=$(DCKR_FILE)
94 $(DCKR_NAME)_DCKR_B_PREFIX:=$(subst /,_,$(shell echo $($(DCKR_NAME)_DCKR_B_PREFIX) | tr '[:upper:]' '[:lower:]'))
96 $(DCKR_NAME)_DCKR_FULLNAME:=$($(DCKR_NAME)_DCKR_B_PREFIX)$(DCKR_NAME)
98 $(DCKR_NAME)_DCKR_B_OPTS:=${DCKR_B_OPTS}
99 $(DCKR_NAME)_DCKR_B_OPTS:=$($(DCKR_NAME)_DCKR_B_OPTS) --network=host
102 $(DCKR_NAME)_DCKR_B_OPTS:=$($(DCKR_NAME)_DCKR_B_OPTS) --build-arg PACKAGEURL=${PACKAGEURL}
106 $(DCKR_NAME)_DCKR_B_OPTS:=$($(DCKR_NAME)_DCKR_B_OPTS) --build-arg PACKAGEREPO=${PACKAGEREPO}
110 $(DCKR_NAME)_DCKR_B_OPTS:=$($(DCKR_NAME)_DCKR_B_OPTS) --build-arg BUILD_PREFIX=${BUILD_PREFIX}
114 $(DCKR_NAME)_DCKR_R_OPTS:=${DCKR_R_OPTS}
115 $(DCKR_NAME)_DCKR_R_OPTS:=$($(DCKR_NAME)_DCKR_R_OPTS) --rm -i --net=host
116 $(DCKR_NAME)_DCKR_R_OPTS:=$($(DCKR_NAME)_DCKR_R_OPTS)$(shell test -t 0 && echo ' -t')
117 $(DCKR_NAME)_DCKR_R_OPTS:=$($(DCKR_NAME)_DCKR_R_OPTS)$(shell test -e /etc/localtime && echo ' -v /etc/localtime:/etc/localtime:ro')
118 $(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')
119 $(DCKR_NAME)_DCKR_R_OPTS:=$($(DCKR_NAME)_DCKR_R_OPTS)$(shell test -e ${HOME}/.docker && echo ' -v ${HOME}/.docker:/ws/.docker:ro')
120 $(DCKR_NAME)_DCKR_R_OPTS:=$($(DCKR_NAME)_DCKR_R_OPTS)$(shell test -e ${HOME}/.netrc && echo ' -v ${HOME}/.netrc:/ws/.netrc:ro')
121 $(DCKR_NAME)_DCKR_R_OPTS:=$($(DCKR_NAME)_DCKR_R_OPTS)$(shell test -e ${HOME}/.ssh && echo ' -v ${HOME}/.ssh:/ws/.ssh:ro')
122 $(DCKR_NAME)_DCKR_R_OPTS:=$($(DCKR_NAME)_DCKR_R_OPTS)$(shell test -e ${HOME}/.gitconfig && echo ' -v ${HOME}/.gitconfig:/ws/.gitconfig:ro')
125 docker-build: DCKR_TARGETS+=docker-build_$(DCKR_NAME)
127 docker-clean: DCKR_TARGETS+=docker-clean_$(DCKR_NAME)