
Updated Makefile to run the build baclient package for go on the host instead of as a docker container, to allow the Makefile be called from another container. Reason being, in a docker-in-docker, volume mapping requires knowledge of host filesystem path instead of the docker daemon filesystem path. Corrected proxy configuration in the scripts to use the USE_PROXY, PROXY and NO_PROXY environment variables. Updated Dockerfile to add multi-stage build, to avoid including the golang-go package in the docker image. Stage one creates the baclient Go library, and stage two creates the drydock image, and copies the baclient from stage one image. Change-Id: I29a30e870da8f44279dcd62bb1173165fa939d43
44 lines
1.1 KiB
Bash
Executable File
44 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Install host-level package dependencies
|
|
# needed for local testing
|
|
set -x
|
|
|
|
if [[ ! -z $(uname -a | grep Ubuntu) ]]
|
|
then
|
|
apt-get update
|
|
installed_pkgs=$(dpkg --get-selections | awk '!/deinstall/ { gsub(/:.*/,"",$1); print $1 }')
|
|
set -a added_pkgs
|
|
for reqfile in $(ls requirements-host*.txt)
|
|
do
|
|
for l in $(grep -vE '(^ *#)|(^$)' "${reqfile}")
|
|
do
|
|
# Do extra magic to support a list of alternative packages separated by '|'
|
|
# none of the packages are found, install the first one listed
|
|
IFS='|' read -a pkgalts <<< "${l}"
|
|
pkgfound=0
|
|
for a in "${pkgalts[@]}"
|
|
do
|
|
if grep -qE "^${a}$" <<< "${installed_pkgs}"
|
|
then
|
|
pkgfound=1
|
|
break
|
|
fi
|
|
done
|
|
if [[ "${pkgfound}" -eq 0 ]]
|
|
then
|
|
added_pkgs+=("${pkgalts[0]}")
|
|
fi
|
|
done
|
|
done
|
|
if [[ ${#added_pkgs[@]} -gt 0 ]]
|
|
then
|
|
DEBIAN_FRONTEND=noninteractive apt-get \
|
|
-o Dpkg::Options::="--force-confdef" \
|
|
-o Dpkg::Options::="--force-confold" \
|
|
install -y --no-install-recommends "${added_pkgs[@]}"
|
|
fi
|
|
else
|
|
echo "Only support testing on Ubuntu hosts at this time."
|
|
fi
|