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'