blob: 3127662c61b0c0c6f63ede4a0affb9397d06a2dc [file] [log] [blame]
#!/usr/bin/env bash
################################################################################
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
################################################################################
set -o pipefail
source "$(dirname "$0")"/common.sh
docker --version
docker-compose --version
function containers_health_check() {
local container_names=${@:1}
for container in ${container_names}; do
if ! [ $(docker inspect -f '{{.State.Running}}' ${container} 2>&1) = 'true' ];
then
return 1;
fi
done
}
function build_image() {
local image_name=${1:-flink-job}
local default_file_server_address="localhost"
[[ "${OS_TYPE}" != "linux" ]] && default_file_server_address="host.docker.internal"
local file_server_address=${2:-${default_file_server_address}}
echo "Starting fileserver for Flink distribution"
pushd ${FLINK_DIR}/..
tar -czf "${TEST_DATA_DIR}/flink.tgz" flink-*
popd
pushd ${TEST_DATA_DIR}
start_file_server
local server_pid=$!
echo "Preparing Dockeriles"
git clone https://github.com/apache/flink-docker.git --branch dev-1.13 --single-branch
cd flink-docker
./add-custom.sh -u ${file_server_address}:9999/flink.tgz -n ${image_name}
echo "Building images"
run_with_timeout 600 docker build --no-cache --network="host" -t ${image_name} dev/${image_name}-debian
popd
}
function start_file_server() {
command -v python3 >/dev/null 2>&1
if [[ $? -eq 0 ]]; then
python3 ${TEST_INFRA_DIR}/python3_fileserver.py &
return
fi
command -v python >/dev/null 2>&1
if [[ $? -eq 0 ]]; then
python ${TEST_INFRA_DIR}/python2_fileserver.py &
return
fi
echo "Could not find python(3) installation for starting fileserver."
exit 1
}