aboutsummaryrefslogtreecommitdiffstats
path: root/build/docker/Makefile
blob: d4423b0a265414b66a1ca0484aaa28b681de1be7 (plain)
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
##############################################################################
# Copyright (c) 2015 Ericsson AB and others.
# stefan.k.berg@ericsson.com
# jonas.bjurel@ericsson.com
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Apache License, Version 2.0
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################

SHELL = /bin/bash
FILES = $(wildcard ubuntu-builder/*) runcontext
DOCKER_VER := $(shell [[ "$$(docker version --format '{{.Client.Version}}')" =~ ([0-9]+)\.([0-9]+) ]] && echo $$(( $${BASH_REMATCH[1]} * 100 + $${BASH_REMATCH[2]} )))

# Don't use -f flag when docker is newer than 1.9
# https://docs.docker.com/engine/deprecated/#/f-flag-on-docker-tag
ifeq ($(shell echo "$(DOCKER_VER)>109" | bc), 1)
	tag_flags :=
else
	tag_flags := -f
endif

.PHONY: all
all:	.docker

.docker: $(FILES)
	cp Dockerfile ubuntu-builder/Dockerfile
	# Only add proxy ENVs where set in host - needed to pull the base Ubuntu image
	test -n "${http_proxy}" && sed -i "s;INSERT_HTTP_PROXY;${http_proxy};" ubuntu-builder/Dockerfile || exit 0
	test -n "${https_proxy}" && sed -i "s;INSERT_HTTPS_PROXY;${https_proxy};" ubuntu-builder/Dockerfile || exit 0
	test -n "${no_proxy}" && sed -i "s;INSERT_NO_PROXY;${no_proxy};" ubuntu-builder/Dockerfile || exit 0
	test -n "${HTTP_PROXY}" && sed -i "s;INSERT_HTTP_PROXY;${HTTP_PROXY};" ubuntu-builder/Dockerfile || exit 0
	test -n "${HTTPS_PROXY}" && sed -i "s;INSERT_HTTPS_PROXY;${HTTPS_PROXY};" ubuntu-builder/Dockerfile || exit 0
	test -n "${NO_PROXY}" && sed -i "s;INSERT_NO_PROXY;${NO_PROXY};" ubuntu-builder/Dockerfile || exit 0
	sed -i '/INSERT_/d' ubuntu-builder/Dockerfile
	/usr/bin/docker build --rm=true --no-cache=true -t opnfv.org/ubuntu-builder:14.04 ubuntu-builder
	/usr/bin/docker tag ${tag_flags} opnfv.org/ubuntu-builder:14.04 opnfv.org/ubuntu-builder
	touch .docker

.PHONY:	clean
clean:
	rm -f .docker ubuntu-builder/Dockerfile
= 'root': command = "sudo -S -p '' %s" % command stdin, stdout, stderr = self.client.exec_command(command, timeout=timeout) if sudo: stdin.write(self.password + '\n') stdin.flush() response = stdout.read().strip() error = stderr.read().strip() if check: if error: self.close() raise Exception(error) else: return response return response, error def run(self, command): transport = self.client.get_transport() transport.set_keepalive(1) chan = transport.open_session() chan.exec_command(command) while not chan.exit_status_ready(): if chan.recv_ready(): data = chan.recv(1024) while data: log(data.strip()) data = chan.recv(1024) if chan.recv_stderr_ready(): error_buff = chan.recv_stderr(1024) while error_buff: log(error_buff.strip()) error_buff = chan.recv_stderr(1024) return chan.recv_exit_status() def scp_get(self, remote, local='.', dir=False): try: with scp.SCPClient(self.client.get_transport(), sanitize=lambda x: x) as _scp: _scp.get(remote, local, dir) except Exception as e: err(e) def scp_put(self, local, remote='.', dir=False): try: with scp.SCPClient(self.client.get_transport(), sanitize=lambda x: x) as _scp: _scp.put(local, remote, dir) except Exception as e: err(e)