diff --git a/README.md b/README.md
index f5afa6758986854754b22e3a24cbb991fc92df58..f57b23c7d16054049e6945273c029b25264f3fab 100644
--- a/README.md
+++ b/README.md
@@ -18,7 +18,8 @@ You can tell Config Server to use your local Git repository by using `local` Spr
 ## Starting services locally with docker-compose
 In order to start entire infrastructure using Docker, you have to build images by executing `mvn clean install -PbuildDocker` 
 from a project root. Once images are ready, you can start them with a single command
-`docker-compose up`. After starting services it takes a while for API Gateway to be in sync with service registry,
+`docker-compose up`. Containers startup order is coordinated with [`wait-for-it.sh` script](https://github.com/vishnubob/wait-for-it). 
+After starting services it takes a while for API Gateway to be in sync with service registry,
 so don't be scared of initial Zuul timeouts. You can track services availability using Eureka dashboard
 available by default at http://localhost:8761.
 
diff --git a/docker-compose.yml b/docker-compose.yml
index 2e9f5da6fb3e8a38c34e3207f7ca0a630b7b879c..b614419c9f0ca1878ab72f671aacfbae3c39471e 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -2,53 +2,63 @@ version: '2'
 services:
   config-server:
     image: mszarlinski/spring-petclinic-config-server
+    container_name: config-server
     ports:
      - 8888:8888
 
   discovery-server:
     image: mszarlinski/spring-petclinic-discovery-server
+    container_name: discovery-server
     links:
      - config-server
     depends_on:
       - config-server
+    entrypoint: ["./wait-for-it.sh","config-server:8888/info","--","java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
     ports:
      - 8761:8761
 
   customers-service:
     image: mszarlinski/spring-petclinic-customers-service
+    container_name: customers-service
     links:
      - config-server
      - discovery-server
     depends_on:
      - config-server
      - discovery-server
+    entrypoint: ["./wait-for-it.sh","discovery-server:8761/manage/health","--","java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
     ports:
     - 8081:8081
 
   visits-service:
     image: mszarlinski/spring-petclinic-visits-service
+    container_name: visits-service
     links:
      - config-server
      - discovery-server
     depends_on:
      - config-server
      - discovery-server
+    entrypoint: ["./wait-for-it.sh","discovery-server:8761/manage/health","--","java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
     ports:
      - 8082:8082
 
   vets-service:
     image: mszarlinski/spring-petclinic-vets-service
+    container_name: vets-service
     links:
      - config-server
      - discovery-server
     depends_on:
      - config-server
      - discovery-server
+    entrypoint: ["./wait-for-it.sh","discovery-server:8761/manage/health","--","java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
     ports:
      - 8083:8083
 
   api-gateway:
     image: mszarlinski/spring-petclinic-api-gateway
+    container_name: api-gateway
     links:
      - config-server
      - discovery-server
@@ -58,16 +68,19 @@ services:
     depends_on:
      - config-server
      - discovery-server
+    entrypoint: ["./wait-for-it.sh","discovery-server:8761/manage/health","--","java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
     ports:
      - 8080:8080
 
   tracing-server:
     image: mszarlinski/spring-petclinic-tracing-server
+    container_name: tracing-server
     links:
      - config-server
      - discovery-server
     depends_on:
      - config-server
      - discovery-server
+    entrypoint: ["./wait-for-it.sh","discovery-server:8761/manage/health","--","java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
     ports:
      - 9411:9411
diff --git a/spring-petclinic-api-gateway/src/main/docker/Dockerfile b/spring-petclinic-api-gateway/src/main/docker/Dockerfile
index 1e887124b432b1786f4bbae9e10c8ddedbe76174..b2261d2269c3f4aa959b390798f2ad57fa97002a 100644
--- a/spring-petclinic-api-gateway/src/main/docker/Dockerfile
+++ b/spring-petclinic-api-gateway/src/main/docker/Dockerfile
@@ -1,5 +1,7 @@
 FROM java:8
 VOLUME /tmp
+ADD https://raw.githubusercontent.com/vishnubob/wait-for-it/master/wait-for-it.sh wait-for-it.sh
+RUN bash -c 'chmod +x wait-for-it.sh'
 ADD petclinic.jar /app.jar
 ENV SPRING_PROFILES_ACTIVE docker
 RUN bash -c 'touch /app.jar'
diff --git a/spring-petclinic-customers-service/src/main/docker/Dockerfile b/spring-petclinic-customers-service/src/main/docker/Dockerfile
index 2a03442a592d770880ea2acd93e30ceb3151e20d..fc0b6ba796f9999a250b61746dd02f403a2ace59 100644
--- a/spring-petclinic-customers-service/src/main/docker/Dockerfile
+++ b/spring-petclinic-customers-service/src/main/docker/Dockerfile
@@ -1,5 +1,7 @@
 FROM java:8
 VOLUME /tmp
+ADD https://raw.githubusercontent.com/vishnubob/wait-for-it/master/wait-for-it.sh wait-for-it.sh
+RUN bash -c 'chmod +x wait-for-it.sh'
 ADD spring-petclinic-customers-service-1.4.2.jar /app.jar
 ENV SPRING_PROFILES_ACTIVE docker
 RUN bash -c 'touch /app.jar'
diff --git a/spring-petclinic-discovery-server/src/main/docker/Dockerfile b/spring-petclinic-discovery-server/src/main/docker/Dockerfile
index 23ce4133ae6ef9bb4411204f11c5f7bf2ecbbc52..069731adbf780b09bf13adf6add4362269fc6d31 100644
--- a/spring-petclinic-discovery-server/src/main/docker/Dockerfile
+++ b/spring-petclinic-discovery-server/src/main/docker/Dockerfile
@@ -1,5 +1,7 @@
 FROM java:8
 VOLUME /tmp
+ADD https://raw.githubusercontent.com/vishnubob/wait-for-it/master/wait-for-it.sh wait-for-it.sh
+RUN bash -c 'chmod +x wait-for-it.sh'
 ADD spring-petclinic-discovery-server-1.4.2.jar /app.jar
 ENV SPRING_PROFILES_ACTIVE docker
 RUN bash -c 'touch /app.jar'
diff --git a/spring-petclinic-tracing-server/src/main/docker/Dockerfile b/spring-petclinic-tracing-server/src/main/docker/Dockerfile
index 768fc8d9ac50b1af0ccc0ac86394034b4a9fc3d8..1820883ca7a1ddf719f71b3daf6db0fffc5cd663 100644
--- a/spring-petclinic-tracing-server/src/main/docker/Dockerfile
+++ b/spring-petclinic-tracing-server/src/main/docker/Dockerfile
@@ -1,6 +1,8 @@
 FROM java:8
 VOLUME /tmp
-ADD spring-petclinic-tracing-server-1.4.2.jar /app.jar
+ADD https://raw.githubusercontent.com/vishnubob/wait-for-it/master/wait-for-it.sh wait-for-it.sh
+RUN bash -c 'chmod +x wait-for-it.sh'
+RUN bash -c 'chmod +x wait-for-it.sh'
 ENV SPRING_PROFILES_ACTIVE docker
 RUN bash -c 'touch /app.jar'
 EXPOSE 8081
diff --git a/spring-petclinic-vets-service/src/main/docker/Dockerfile b/spring-petclinic-vets-service/src/main/docker/Dockerfile
index 2126b6b0870e52674420fc8663d2828934929922..6fb4095cc26bb24888b37b37fa2ac77e4769e2e7 100644
--- a/spring-petclinic-vets-service/src/main/docker/Dockerfile
+++ b/spring-petclinic-vets-service/src/main/docker/Dockerfile
@@ -1,5 +1,7 @@
 FROM java:8
 VOLUME /tmp
+ADD https://raw.githubusercontent.com/vishnubob/wait-for-it/master/wait-for-it.sh wait-for-it.sh
+RUN bash -c 'chmod +x wait-for-it.sh'
 ADD spring-petclinic-vets-service-1.4.2.jar /app.jar
 ENV SPRING_PROFILES_ACTIVE docker
 RUN bash -c 'touch /app.jar'
diff --git a/spring-petclinic-visits-service/src/main/docker/Dockerfile b/spring-petclinic-visits-service/src/main/docker/Dockerfile
index 9dd6fb0a94182b09bbcbd73ef46c9b7e8dd23424..58cadb730653e0ea838fa08b799b4a4f138fc1e9 100644
--- a/spring-petclinic-visits-service/src/main/docker/Dockerfile
+++ b/spring-petclinic-visits-service/src/main/docker/Dockerfile
@@ -1,5 +1,7 @@
 FROM java:8
 VOLUME /tmp
+ADD https://raw.githubusercontent.com/vishnubob/wait-for-it/master/wait-for-it.sh wait-for-it.sh
+RUN bash -c 'chmod +x wait-for-it.sh'
 ADD spring-petclinic-visits-service-1.4.2.jar /app.jar
 ENV SPRING_PROFILES_ACTIVE docker
 RUN bash -c 'touch /app.jar'