Skip to content
Snippets Groups Projects
Commit ad398e45 authored by Maciej Szarlinski's avatar Maciej Szarlinski
Browse files

Containers startup coordination with wait-for-it.sh

parent b427983d
No related branches found
No related tags found
No related merge requests found
...@@ -18,7 +18,8 @@ You can tell Config Server to use your local Git repository by using `local` Spr ...@@ -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 ## 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` 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 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 so don't be scared of initial Zuul timeouts. You can track services availability using Eureka dashboard
available by default at http://localhost:8761. available by default at http://localhost:8761.
......
...@@ -2,53 +2,63 @@ version: '2' ...@@ -2,53 +2,63 @@ version: '2'
services: services:
config-server: config-server:
image: mszarlinski/spring-petclinic-config-server image: mszarlinski/spring-petclinic-config-server
container_name: config-server
ports: ports:
- 8888:8888 - 8888:8888
discovery-server: discovery-server:
image: mszarlinski/spring-petclinic-discovery-server image: mszarlinski/spring-petclinic-discovery-server
container_name: discovery-server
links: links:
- config-server - config-server
depends_on: depends_on:
- config-server - config-server
entrypoint: ["./wait-for-it.sh","config-server:8888/info","--","java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
ports: ports:
- 8761:8761 - 8761:8761
customers-service: customers-service:
image: mszarlinski/spring-petclinic-customers-service image: mszarlinski/spring-petclinic-customers-service
container_name: customers-service
links: links:
- config-server - config-server
- discovery-server - discovery-server
depends_on: depends_on:
- config-server - config-server
- discovery-server - discovery-server
entrypoint: ["./wait-for-it.sh","discovery-server:8761/manage/health","--","java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
ports: ports:
- 8081:8081 - 8081:8081
visits-service: visits-service:
image: mszarlinski/spring-petclinic-visits-service image: mszarlinski/spring-petclinic-visits-service
container_name: visits-service
links: links:
- config-server - config-server
- discovery-server - discovery-server
depends_on: depends_on:
- config-server - config-server
- discovery-server - discovery-server
entrypoint: ["./wait-for-it.sh","discovery-server:8761/manage/health","--","java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
ports: ports:
- 8082:8082 - 8082:8082
vets-service: vets-service:
image: mszarlinski/spring-petclinic-vets-service image: mszarlinski/spring-petclinic-vets-service
container_name: vets-service
links: links:
- config-server - config-server
- discovery-server - discovery-server
depends_on: depends_on:
- config-server - config-server
- discovery-server - discovery-server
entrypoint: ["./wait-for-it.sh","discovery-server:8761/manage/health","--","java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
ports: ports:
- 8083:8083 - 8083:8083
api-gateway: api-gateway:
image: mszarlinski/spring-petclinic-api-gateway image: mszarlinski/spring-petclinic-api-gateway
container_name: api-gateway
links: links:
- config-server - config-server
- discovery-server - discovery-server
...@@ -58,16 +68,19 @@ services: ...@@ -58,16 +68,19 @@ services:
depends_on: depends_on:
- config-server - config-server
- discovery-server - discovery-server
entrypoint: ["./wait-for-it.sh","discovery-server:8761/manage/health","--","java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
ports: ports:
- 8080:8080 - 8080:8080
tracing-server: tracing-server:
image: mszarlinski/spring-petclinic-tracing-server image: mszarlinski/spring-petclinic-tracing-server
container_name: tracing-server
links: links:
- config-server - config-server
- discovery-server - discovery-server
depends_on: depends_on:
- config-server - config-server
- discovery-server - discovery-server
entrypoint: ["./wait-for-it.sh","discovery-server:8761/manage/health","--","java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
ports: ports:
- 9411:9411 - 9411:9411
FROM java:8 FROM java:8
VOLUME /tmp 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 ADD petclinic.jar /app.jar
ENV SPRING_PROFILES_ACTIVE docker ENV SPRING_PROFILES_ACTIVE docker
RUN bash -c 'touch /app.jar' RUN bash -c 'touch /app.jar'
......
FROM java:8 FROM java:8
VOLUME /tmp 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 ADD spring-petclinic-customers-service-1.4.2.jar /app.jar
ENV SPRING_PROFILES_ACTIVE docker ENV SPRING_PROFILES_ACTIVE docker
RUN bash -c 'touch /app.jar' RUN bash -c 'touch /app.jar'
......
FROM java:8 FROM java:8
VOLUME /tmp 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 ADD spring-petclinic-discovery-server-1.4.2.jar /app.jar
ENV SPRING_PROFILES_ACTIVE docker ENV SPRING_PROFILES_ACTIVE docker
RUN bash -c 'touch /app.jar' RUN bash -c 'touch /app.jar'
......
FROM java:8 FROM java:8
VOLUME /tmp 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 ENV SPRING_PROFILES_ACTIVE docker
RUN bash -c 'touch /app.jar' RUN bash -c 'touch /app.jar'
EXPOSE 8081 EXPOSE 8081
......
FROM java:8 FROM java:8
VOLUME /tmp 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 ADD spring-petclinic-vets-service-1.4.2.jar /app.jar
ENV SPRING_PROFILES_ACTIVE docker ENV SPRING_PROFILES_ACTIVE docker
RUN bash -c 'touch /app.jar' RUN bash -c 'touch /app.jar'
......
FROM java:8 FROM java:8
VOLUME /tmp 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 ADD spring-petclinic-visits-service-1.4.2.jar /app.jar
ENV SPRING_PROFILES_ACTIVE docker ENV SPRING_PROFILES_ACTIVE docker
RUN bash -c 'touch /app.jar' RUN bash -c 'touch /app.jar'
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment