docker to use CONFIG_SERVICE

This commit is contained in:
2025-01-24 11:39:04 -05:00
parent 48ecf7cca2
commit 43c50befc4
8 changed files with 123 additions and 50 deletions
+69 -2
View File
@@ -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"