docker to use CONFIG_SERVICE
This commit is contained in:
@@ -37,6 +37,7 @@ build_docker_image() {
|
||||
image_name=${2}
|
||||
docker_dev_path=${3}
|
||||
project=${4}
|
||||
test_script=${5}
|
||||
|
||||
echo "Building ${title}..."
|
||||
echo "ImageName=${image_name}"
|
||||
@@ -76,7 +77,72 @@ build_docker_image() {
|
||||
Cmd+=" -t ${image_name}:${image_version}"
|
||||
Cmd+=" -f ${DockerDir}/Dockerfile ${RootDir}"
|
||||
echo ${Cmd}
|
||||
eval ${Cmd} 1>&2 || exit
|
||||
eval ${Cmd} 1>&2 || exit 1
|
||||
|
||||
if [ ! -z "${test_script}" ]; then
|
||||
if [ ! -f ${DockerDir}/${test_script} ]; then
|
||||
echo "Test script ${test_script} is missing"
|
||||
exit 1
|
||||
fi
|
||||
echo "Running test script ${test_script} for ${image_name}"
|
||||
|
||||
Cmd="docker cp ${DockerDir}/${test_script} ${image_name}:/"
|
||||
echo ${Cmd}
|
||||
eval ${Cmd} 1>&2 || exit 1
|
||||
|
||||
Cmd="docker exec ${image_name} chmod +x /${test_script}"
|
||||
echo ${Cmd}
|
||||
eval ${Cmd} 1>&2 || exit 1
|
||||
|
||||
Cmd="docker run"
|
||||
Cmd+=" --rm"
|
||||
Cmd+=" -d"
|
||||
Cmd+=" --name test-container"
|
||||
Cmd+=" ${image_name}"
|
||||
Cmd+=" /bin/bash -c /${TestScript}"
|
||||
|
||||
echo ${Cmd}
|
||||
eval ${Cmd} 1>&2 || exit 1
|
||||
|
||||
echo "Removing test script ${test_script} from ${image_name}"
|
||||
Cmd="docker exec ${image_name} rm /${test_script}"
|
||||
echo ${Cmd}
|
||||
eval ${Cmd} 1>&2 || exit 1
|
||||
fi
|
||||
|
||||
|
||||
: <<'COMMENT'
|
||||
-------------------------
|
||||
Every single docker_dev project must have a test script
|
||||
image_test.sh
|
||||
that is copied to the image's root directory.
|
||||
-------------------------
|
||||
|
||||
|
||||
Cmd="docker run"
|
||||
Cmd+=" --rm"
|
||||
Cmd+=" -d"
|
||||
Cmd+=" --name test-container"
|
||||
Cmd+=" ${image_name}"
|
||||
Cmd+=" /bin/bash -c /${TestScript}"
|
||||
|
||||
echo ${Cmd}
|
||||
eval ${Cmd} 1>&2 || exit 1
|
||||
|
||||
|
||||
# Get the exit status of the test script
|
||||
docker wait test-container
|
||||
|
||||
# Check the exit status of the container
|
||||
EXIT_STATUS=$?
|
||||
|
||||
# Analyze the exit status
|
||||
if [ ${EXIT_STATUS} -ne 0 ]; then
|
||||
echo "Tests Failed"
|
||||
exit 1
|
||||
fi
|
||||
COMMENT
|
||||
|
||||
|
||||
Cmd="docker tag"
|
||||
Cmd+=" ${image_name}:latest"
|
||||
@@ -188,8 +254,9 @@ for item in "${Jobs[@]}"; do
|
||||
image_name=$(echo "$item" | jq -r '.value.image_name')
|
||||
docker_dev_path=$(echo "$item" | jq -r '.value.docker_dev_path')
|
||||
project=$(echo "$item" | jq -r '.value.based_on_project')
|
||||
test_script=$(echo "$item" | jq -r '.value.test_script')
|
||||
|
||||
build_docker_image "$title" "$image_name" "$docker_dev_path" "$project"
|
||||
build_docker_image "$title" "$image_name" "$docker_dev_path" "$project" "${test_script}
|
||||
done
|
||||
|
||||
Cmd="rm -rf ${RootDir}/docker_dev"
|
||||
|
||||
Reference in New Issue
Block a user