2015-07-12 22:18:02 +00:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
2015-07-17 17:07:00 +00:00
|
|
|
# Usage:
|
|
|
|
# ./run_dockers.bsh - Run all the docker images
|
|
|
|
# ./run_dockers.bsh lfs_centos_5 lfs_centos_7 - Run only CentOS 5 & 7 image
|
|
|
|
|
2015-07-12 22:18:02 +00:00
|
|
|
set -eu
|
|
|
|
|
2015-07-17 19:55:31 +00:00
|
|
|
CUR_DIR=$(cd $(dirname "${BASH_SOURCE[0]}"); pwd)
|
2015-07-12 22:18:02 +00:00
|
|
|
REPO_DIR=$(cd ${CUR_DIR}/..; pwd)
|
2015-07-17 19:55:31 +00:00
|
|
|
PACKAGE_DIR=${CUR_DIR}/repos
|
2015-07-12 22:18:02 +00:00
|
|
|
BUILD_LOCAL=1
|
|
|
|
|
2015-07-17 17:07:00 +00:00
|
|
|
#If you are not in docker group and you have sudo, default value is sudo
|
|
|
|
: ${SUDO=`if id -nG | grep -qwv docker && which sudo > /dev/null 2>&1; then echo sudo; fi`}
|
2015-07-13 03:50:05 +00:00
|
|
|
|
2015-07-17 17:07:00 +00:00
|
|
|
function split_image_name()
|
|
|
|
{ #$1 - image directory name or dockerfile
|
|
|
|
#sets IMAGE_NAME to the basename of the dir containing the docker file
|
|
|
|
#sets IMAGE_INFO to be the array name following my pattern
|
|
|
|
IMAGE_NAME=$(basename $1)
|
|
|
|
if [ "${IMAGE_NAME,,}" == "dockerfile" ]; then
|
|
|
|
IMAGE_NAME=$(basename $(dirname $1))
|
|
|
|
fi
|
|
|
|
|
|
|
|
local IFS=_
|
2015-07-12 22:18:02 +00:00
|
|
|
IMAGE_INFO=(${IMAGE_NAME})
|
2015-07-17 17:07:00 +00:00
|
|
|
}
|
2015-07-13 03:50:05 +00:00
|
|
|
|
2015-07-18 19:16:54 +00:00
|
|
|
IMAGES=()
|
|
|
|
while [[ $# > 0 ]]; do
|
|
|
|
if [ "$1" == "--" ]; then
|
|
|
|
shift
|
|
|
|
DOCKER_CMD="${@}"
|
|
|
|
break
|
|
|
|
else
|
|
|
|
IMAGES+=("$1")
|
|
|
|
fi
|
|
|
|
shift
|
|
|
|
done
|
|
|
|
|
|
|
|
if [[ ${#IMAGES} == 0 ]]; then
|
2015-07-17 17:07:00 +00:00
|
|
|
IMAGES=($(ls -d ${CUR_DIR}/git-lfs_*/Dockerfile))
|
|
|
|
fi
|
2015-07-13 03:50:05 +00:00
|
|
|
|
2015-07-17 17:07:00 +00:00
|
|
|
mkdir -p "${PACKAGE_DIR}"
|
|
|
|
#Run docker to build pacakges
|
|
|
|
for DOCKER_FILE in "${IMAGES[@]}"; do
|
|
|
|
split_image_name "${DOCKER_FILE}" #set IMAGE_NAME and IMAGE_INFO
|
|
|
|
|
|
|
|
echo Compiling LFS in docker image ${IMAGE_NAME}
|
2015-07-12 22:18:02 +00:00
|
|
|
IMAGE_REPO_DIR="${PACKAGE_DIR}"/"${IMAGE_INFO[1]}"/"${IMAGE_INFO[2]}"
|
2015-07-17 19:55:31 +00:00
|
|
|
$SUDO docker run --rm ${DOCKER_CMD+-it} \
|
|
|
|
-e BUILD_LOCAL=${BUILD_LOCAL} \
|
|
|
|
-v ${REPO_DIR}:/src \
|
|
|
|
-v ${IMAGE_REPO_DIR}:/repo \
|
|
|
|
--name git-lfs_build_container \
|
|
|
|
${IMAGE_NAME} ${DOCKER_CMD-}
|
|
|
|
|
|
|
|
#mkdir -p "${IMAGE_REPO_DIR}"
|
|
|
|
#$SUDO docker cp git-lfs_build_container:/tmp/docker_run/repo/ ${IMAGE_REPO_DIR}
|
|
|
|
|
|
|
|
# $SUDO docker kill git-lfs_build_container
|
|
|
|
# $SUDO docker rm git-lfs_build_container
|
2015-07-12 22:18:02 +00:00
|
|
|
done
|