cat<<-EOF
Command Arguments:
- -n, --name
+ -c, --container-name
Mandatory argument. container name
- -p, --project-name
- Mandatory argument. project name
+ -n, --network-name
+ Mandatory argument. network name
-t, --timeout
Mandatory argument. time out value in seconds (must be number)
process_arguments()
{
- SHORT_ARGS="n:p:t:"
- LONG_ARGS="help,name:,project-name:,timeout:"
+ SHORT_ARGS="c:n:t:"
+ LONG_ARGS="help,container-name:,network-name:,timeout:"
args=$(getopt -o $SHORT_ARGS -l $LONG_ARGS -n "$0" -- "$@" 2>&1 )
[[ $? -ne 0 ]] && invalid_arguments $( echo " $args"| head -1 )
while true; do
case "$1" in
- -n|--name)
+ -c|--container-name)
NAME=$2
shift 2 ;;
- -p|project-name)
- PROJECT_NAME=$2
+ -n|--network-name)
+ NETWORK_NAME=$2
shift 2 ;;
-t|--timeout)
TIME_OUT=$2
echo "$SCRIPT_NAME $(current_timestamp): error: Container name must not be empty! $NAME" >&2; exit 1
fi
- if [ -z "$PROJECT_NAME" ]; then
- echo "$SCRIPT_NAME $(current_timestamp): error: project name must not be empty! $PROJECT_NAME" >&2; exit 1
+ if [ -z "$NETWORK_NAME" ]; then
+ echo "$SCRIPT_NAME $(current_timestamp): error: network name must not be empty! $NETWORK_NAME" >&2; exit 1
fi
regex='^[0-9]+$'
exit 1
fi
- HOST_IP=$(docker inspect --format '{{ index .NetworkSettings.Networks "'$PROJECT_NAME'" "IPAddress"}}' $CONTAINER_NAME)
+ result=$(docker inspect --format '{{.State.Running}}' $CONTAINER_NAME)
- if [ $? -ne 0 ]; then
- echo "$SCRIPT_NAME $(current_timestamp) ERROR: Unable to find HOST IP using project name: $PROJECT_NAME and container name: $CONTAINER_NAME"
+ if [ $result != "true" ] ; then
+ docker logs $CONTAINER_NAME
+ echo "$SCRIPT_NAME $(current_timestamp) ERROR: $CONTAINER_NAME container is not running"
+ exit 1
+ fi
+
+ HOST_IP=$(docker inspect --format '{{ index .NetworkSettings.Networks "'$NETWORK_NAME'" "IPAddress"}}' $CONTAINER_NAME)
+
+ if [ $? -ne 0 ] || [ -z $HOST_IP ] ; then
+ echo "$SCRIPT_NAME $(current_timestamp) ERROR: Unable to find HOST IP using network name: $NETWORK_NAME and container name: $CONTAINER_NAME"
exit 1
fi
PORT=$(docker port $CONTAINER_NAME | cut -c1-$(docker port $CONTAINER_NAME | grep -aob '/' | grep -oE '[0-9]+'))
- if [ $? -ne 0 ]; then
+ if [ $? -ne 0 ] || [ -z $PORT ] ; then
echo "$SCRIPT_NAME $(current_timestamp) ERROR: Unable to find PORT using project name: $PROJECT_NAME and container name: $CONTAINER_NAME"
exit 1
fi
$WAIT_FOR_SCRIPT -t "$TIME_OUT" -h "$HOST_IP" -p "$PORT"
if [ $? -ne 0 ]; then
+ docker logs $CONTAINER_NAME
echo "$SCRIPT_NAME $(current_timestamp) ERROR: wait-for.sh failed ..."
exit 1
fi