diff --git a/build/docker_images_builder.sh b/build/docker_images_builder.sh index c0b8815..2cb78d8 100755 --- a/build/docker_images_builder.sh +++ b/build/docker_images_builder.sh @@ -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" diff --git a/docker/market_data/hist/crypto_md_day.sh b/docker/market_data/hist/crypto_md_day.sh index 9cc1e81..c9020f3 100755 --- a/docker/market_data/hist/crypto_md_day.sh +++ b/docker/market_data/hist/crypto_md_day.sh @@ -11,16 +11,17 @@ if [ -z ${date} ] ; then fi Cmd="docker run" -Cmd="${Cmd} --pull=always" -Cmd="${Cmd} --network=host" -Cmd="${Cmd} --name=crypto_md_day.${host}.${date}" -Cmd="${Cmd} --rm" -Cmd="${Cmd} --volume=${HOME}/.creds:/.creds" -Cmd="${Cmd} ${DockerImage}" -Cmd="${Cmd} -h ${host}" -Cmd="${Cmd} -d ${date}" -# Cmd="${Cmd} -s coinbase,bnbspot,bnbfut" -Cmd="${Cmd} -s coinbase,bnbspot" +Cmd+=" --pull=always" +Cmd+=" --network=host" +Cmd+=" --name=crypto_md_day.${host}.${date}" +Cmd+=" --rm" +Cmd+=" --volume=${HOME}/.creds:/.creds" +Cmd+=" -e CONFIG_SERVICE=cloud23.cvtt.vpn:6789" +Cmd+=" ${DockerImage}" +Cmd+=" -h ${host}" +Cmd+=" -d ${date}" +# Cmd+=" -s coinbase,bnbspot,bnbfut" +Cmd+=" -s coinbase,bnbspot" echo $Cmd eval $Cmd diff --git a/docker/market_data/hist/load_alpaca_hbar.sh b/docker/market_data/hist/load_alpaca_hbar.sh index f898389..3ff9d8b 100755 --- a/docker/market_data/hist/load_alpaca_hbar.sh +++ b/docker/market_data/hist/load_alpaca_hbar.sh @@ -86,16 +86,17 @@ fi echo "date_to_load=${date_to_load}" Cmd="docker run" -Cmd="${Cmd} --pull=always" -Cmd="${Cmd} --network=host" -Cmd="${Cmd} --name=${ContainerName}" -Cmd="${Cmd} --rm" -Cmd="${Cmd} --volume=${LogDir}:/logs" -Cmd="${Cmd} --volume=${HOME}/.creds:/.creds" -Cmd="${Cmd} ${DockerImage}" -Cmd="${Cmd} -d ${date_to_load}" +Cmd+=" --pull=always" +Cmd+=" --network=host" +Cmd+=" --name=${ContainerName}" +Cmd+=" --rm" +Cmd+=" --volume=${LogDir}:/logs" +Cmd+=" --volume=${HOME}/.creds:/.creds" +Cmd+=" -e CONFIG_SERVICE=cloud23.cvtt.vpn:6789" +Cmd+=" ${DockerImage}" +Cmd+=" -d ${date_to_load}" if [ -n "${NumSymbols}" ]; then - Cmd="${Cmd} -N ${NumSymbols}" + Cmd+=" -N ${NumSymbols}" fi echo $Cmd diff --git a/docker/market_data/hist/load_alpaca_qat.sh b/docker/market_data/hist/load_alpaca_qat.sh index 42a4ea3..afbacfa 100755 --- a/docker/market_data/hist/load_alpaca_qat.sh +++ b/docker/market_data/hist/load_alpaca_qat.sh @@ -91,15 +91,16 @@ fi echo "date_to_load=${date_to_load}" Cmd="docker run" -Cmd="${Cmd} --pull=always" -Cmd="${Cmd} --network=host" -Cmd="${Cmd} --name=${ContainerName}" -Cmd="${Cmd} --rm" -Cmd="${Cmd} --volume=${LogDir}:/logs" -Cmd="${Cmd} --volume=${HOME}/.creds:/.creds" -Cmd="${Cmd} ${DockerImage}" -Cmd="${Cmd} -d ${date_to_load}" -Cmd="${Cmd} -S ${Symbols}" +Cmd+=" --pull=always" +Cmd+=" --network=host" +Cmd+=" --name=${ContainerName}" +Cmd+=" --rm" +Cmd+=" --volume=${LogDir}:/logs" +Cmd+=" --volume=${HOME}/.creds:/.creds" +Cmd+=" -e CONFIG_SERVICE=cloud23.cvtt.vpn:6789" +Cmd+=" ${DockerImage}" +Cmd+=" -d ${date_to_load}" +Cmd+=" -S ${Symbols}" echo $Cmd eval $Cmd diff --git a/docker/market_data/recorder/md_recorder.sh b/docker/market_data/recorder/md_recorder.sh index 026f733..056b70d 100755 --- a/docker/market_data/recorder/md_recorder.sh +++ b/docker/market_data/recorder/md_recorder.sh @@ -44,16 +44,17 @@ fi Cmd="docker run" -Cmd="${Cmd} -d" -Cmd="${Cmd} --rm" -Cmd="${Cmd} --network=host" -Cmd="${Cmd} --pull=always" -Cmd="${Cmd} --name=${ContainerName}" -Cmd="${Cmd} -v /home/cvtt/.creds:/.creds" -Cmd="${Cmd} -v /home/cvtt/prod/data:/app/data" -Cmd="${Cmd} -v /home/cvtt/prod/logs:/logs" -Cmd="${Cmd} cloud21.cvtt.vpn:5500/md_recorder:latest" -Cmd="${Cmd} ${job}" +Cmd+=" -d" +Cmd+=" --rm" +Cmd+=" --network=host" +Cmd+=" --pull=always" +Cmd+=" --name=${ContainerName}" +Cmd+=" -v /home/cvtt/.creds:/.creds" +Cmd+=" -v /home/cvtt/prod/data:/app/data" +Cmd+=" -v /home/cvtt/prod/logs:/logs" +Cmd+=" -e CONFIG_SERVICE=cloud23.cvtt.vpn:6789" +Cmd+=" cloud21.cvtt.vpn:5500/md_recorder:latest" +Cmd+=" ${job}" echo ${Cmd} eval ${Cmd} diff --git a/docker/market_data/recorder/md_recorder_monitor.sh b/docker/market_data/recorder/md_recorder_monitor.sh index b4b71b6..efca24c 100755 --- a/docker/market_data/recorder/md_recorder_monitor.sh +++ b/docker/market_data/recorder/md_recorder_monitor.sh @@ -45,15 +45,16 @@ if is_container_running "$ContainerName"; then fi Cmd="docker run" -Cmd="${Cmd} -d" -Cmd="${Cmd} --rm" -Cmd="${Cmd} --network=host" -Cmd="${Cmd} --pull=always" -Cmd="${Cmd} --name=${ContainerName}" -Cmd="${Cmd} -v /home/cvtt/.creds:/.creds" -Cmd="${Cmd} -v /home/cvtt/prod/logs:/logs" -Cmd="${Cmd} cloud21.cvtt.vpn:5500/md_recorder_monitor:latest" -Cmd="${Cmd} ${Instance} ${AdminPort}" +Cmd+=" -d" +Cmd+=" --rm" +Cmd+=" --network=host" +Cmd+=" --pull=always" +Cmd+=" --name=${ContainerName}" +Cmd+=" -v /home/cvtt/.creds:/.creds" +Cmd+=" -v /home/cvtt/prod/logs:/logs" +Cmd+=" -e CONFIG_SERVICE=cloud23.cvtt.vpn:6789" +Cmd+=" cloud21.cvtt.vpn:5500/md_recorder_monitor:latest" +Cmd+=" ${Instance} ${AdminPort}" echo ${Cmd} eval ${Cmd} diff --git a/docker/research/crypto_exch_stats.sh b/docker/research/crypto_exch_stats.sh index 45c4759..f1efc4b 100755 --- a/docker/research/crypto_exch_stats.sh +++ b/docker/research/crypto_exch_stats.sh @@ -8,6 +8,7 @@ Cmd+=" --network=host" Cmd+=" --name=crypto_exch_stats" Cmd+=" --volume=${HOME}/prod/data:/app/data" Cmd+=" --volume=${HOME}/prod/logs:/logs" +Cmd+=" -e CONFIG_SERVICE=cloud23.cvtt.vpn:6789" Cmd+=" cloud21.cvtt.vpn:5500/crypto_exch_stats:latest" echo ${Cmd} diff --git a/release_version.txt b/release_version.txt index f5b5629..695568f 100644 --- a/release_version.txt +++ b/release_version.txt @@ -1 +1 @@ -1.9.6,storage healthcheck - ignore known_hosts +1.9.7,docker to use CONFIG_SERVICE