diff --git a/unit-files/discovery-u@.service b/unit-files/discovery-u@.service index 66deca19bdb5c8bc7f6db2d40d478510ba432ecb..62b24e2fe0df9a2d5963c4c2f292b84e6e2daf97 100644 --- a/unit-files/discovery-u@.service +++ b/unit-files/discovery-u@.service @@ -11,10 +11,14 @@ BindsTo=universal@%i.service Type=oneshot RemainAfterExit=yes Environment=URL=%i -ExecStart=/bin/bash -euxc ' \ - sleep 3; \ - container_name=`echo ${URL}_web_1 | sed "s/\.//g" | sed "s/-//g"`; \ - ip=`docker inspect --format \'{{.NetworkSettings.IPAddress}}\' $container_name`; \ +ExecStart=/bin/bash -xc ' \ + ip=""; \ + while [ -z $ip ]; \ + do \ + container_name=`echo ${URL}_web_1 | sed "s/\.//g" | sed "s/-//g"`; \ + ip=`docker inspect --format \'{{.NetworkSettings.IPAddress}}\' $container_name`; \ + sleep 1; \ + done; \ etcdctl --peers 172.17.42.1:4001 set /services/web/%i \'{"ip":"\'$ip\'", "port":"80"}\';' ExecStop=-/usr/bin/etcdctl rm /services/web/%i