#!/bin/bash
if [ “$1” = “-w” ]; then
wait_for_running=1; shift
fi
declare -A running_containers
while :; do
running_containers=() link_args="" missed_args=0 for running_container_id in $(docker ps -q); do running_container_name=$(docker inspect -f '{{.Name}}' ${running_container_id}) running_container_service_name=$(echo "${running_container_name}" | sed 's/\///g' | sed 's/-i/ /g' | cut -d' ' -f 1) running_container_image=$(docker inspect -f '{{.Config.Image}}' ${running_container_id} | tr ':' ' ' | awk '{print $1;}' | tr '/' ' ' | awk '{print $NF;}') running_containers[${running_container_service_name}]="${running_container_name}" done for dep_name in $@; do dep_container=${running_containers[${dep_name}]} if [ -z "${dep_container}" ]; then missed_args=1 fi link_args="${link_args} --link=\"${dep_container}:${dep_name}\"" done if [ "${missed_args}" -eq 0 ]; then break fi if [ -z "${wait_for_running}" ]; then echo "could not find dependent container!" >&2 exit 15 fi sleep 1
done
echo ${link_args}