Skip to content
Snippets Groups Projects
Commit 318c08ae authored by Michael Werner's avatar Michael Werner Committed by Maciej Szarliński
Browse files

Update to alpine and dockerize (#107)

* Add alpine jre and dockerize script

* Add docker build argument DOCKERIZE_VERSION

* Increase memory limit

* Use dockerize instead of wait-for-it script

* Update documentation dockerize script

* Remove unnecessary ports

* Revert "Remove unnecessary ports"

This reverts commit a605aaf

* Set memory limit to 512M

* Merge openzipkin

* Remove obsolete links

* Fix honoring memory limits for openzipkin
parent 236e551f
No related branches found
No related tags found
No related merge requests found
......@@ -22,7 +22,7 @@ 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 `./mvnw clean install -PbuildDocker`
from a project root. Once images are ready, you can start them with a single command
`docker-compose up`. Containers startup order is coordinated with [`wait-for-it.sh` script](https://github.com/vishnubob/wait-for-it).
`docker-compose up`. Containers startup order is coordinated with [`dockerize` script](https://github.com/jwilder/dockerize).
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.
......
......@@ -3,102 +3,80 @@ services:
config-server:
image: mszarlinski/spring-petclinic-config-server
container_name: config-server
mem_limit: 256M
mem_limit: 512M
ports:
- 8888:8888
discovery-server:
image: mszarlinski/spring-petclinic-discovery-server
container_name: discovery-server
mem_limit: 256M
links:
- config-server
mem_limit: 512M
depends_on:
- config-server
entrypoint: ["./wait-for-it.sh","config-server:8888","--timeout=60","--","java", "-XX:+UnlockExperimentalVMOptions", "-XX:+UseCGroupMemoryLimitForHeap", "-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
entrypoint: ["./dockerize","-wait=tcp://config-server:8888","-timeout=60s","--","java", "-XX:+UnlockExperimentalVMOptions", "-XX:+UseCGroupMemoryLimitForHeap", "-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
ports:
- 8761:8761
customers-service:
image: mszarlinski/spring-petclinic-customers-service
container_name: customers-service
mem_limit: 256M
links:
- config-server
- discovery-server
- tracing-server
mem_limit: 512M
depends_on:
- config-server
- discovery-server
entrypoint: ["./wait-for-it.sh","discovery-server:8761","--timeout=60","--","java", "-XX:+UnlockExperimentalVMOptions", "-XX:+UseCGroupMemoryLimitForHeap", "-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
entrypoint: ["./dockerize","-wait=tcp://discovery-server:8761","-timeout=60s","--","java", "-XX:+UnlockExperimentalVMOptions", "-XX:+UseCGroupMemoryLimitForHeap", "-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
ports:
- 8081:8081
visits-service:
image: mszarlinski/spring-petclinic-visits-service
container_name: visits-service
mem_limit: 256M
links:
- config-server
- discovery-server
- tracing-server
mem_limit: 512M
depends_on:
- config-server
- discovery-server
entrypoint: ["./wait-for-it.sh","discovery-server:8761","--timeout=60","--","java", "-XX:+UnlockExperimentalVMOptions", "-XX:+UseCGroupMemoryLimitForHeap", "-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
entrypoint: ["./dockerize","-wait=tcp://discovery-server:8761","-timeout=60s","--","java", "-XX:+UnlockExperimentalVMOptions", "-XX:+UseCGroupMemoryLimitForHeap", "-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
ports:
- 8082:8082
vets-service:
image: mszarlinski/spring-petclinic-vets-service
container_name: vets-service
mem_limit: 256M
links:
- config-server
- discovery-server
- tracing-server
mem_limit: 512M
depends_on:
- config-server
- discovery-server
entrypoint: ["./wait-for-it.sh","discovery-server:8761","--timeout=60","--","java", "-XX:+UnlockExperimentalVMOptions", "-XX:+UseCGroupMemoryLimitForHeap", "-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
entrypoint: ["./dockerize","-wait=tcp://discovery-server:8761","-timeout=60s","--","java", "-XX:+UnlockExperimentalVMOptions", "-XX:+UseCGroupMemoryLimitForHeap", "-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
ports:
- 8083:8083
api-gateway:
image: mszarlinski/spring-petclinic-api-gateway
container_name: api-gateway
mem_limit: 256M
links:
- config-server
- discovery-server
- customers-service
- visits-service
- vets-service
- tracing-server
mem_limit: 512M
depends_on:
- config-server
- discovery-server
entrypoint: ["./wait-for-it.sh","discovery-server:8761","--timeout=60","--","java", "-XX:+UnlockExperimentalVMOptions", "-XX:+UseCGroupMemoryLimitForHeap", "-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
entrypoint: ["./dockerize","-wait=tcp://discovery-server:8761","-timeout=60s","--","java", "-XX:+UnlockExperimentalVMOptions", "-XX:+UseCGroupMemoryLimitForHeap", "-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
ports:
- 8080:8080
tracing-server:
image: openzipkin/zipkin
container_name: tracing-server
mem_limit: 256M
mem_limit: 512M
environment:
- JAVA_OPTS=-XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -Djava.security.egd=file:/dev/./urandom
ports:
- 9411:9411
admin-server:
image: mszarlinski/spring-petclinic-admin-server
container_name: admin-server
mem_limit: 256M
links:
- config-server
- discovery-server
mem_limit: 512M
depends_on:
- config-server
- discovery-server
entrypoint: ["./wait-for-it.sh","discovery-server:8761","--timeout=60","--","java", "-XX:+UnlockExperimentalVMOptions", "-XX:+UseCGroupMemoryLimitForHeap", "-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
entrypoint: ["./dockerize","-wait=tcp://discovery-server:8761","-timeout=60s","--","java", "-XX:+UnlockExperimentalVMOptions", "-XX:+UseCGroupMemoryLimitForHeap", "-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
ports:
- 9090:9090
FROM openjdk:8
FROM openjdk:8-jre-alpine
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'
ARG DOCKERIZE_VERSION
ARG ARTIFACT_NAME
ARG EXPOSED_PORT
ADD ${ARTIFACT_NAME}.jar /app.jar
ENV SPRING_PROFILES_ACTIVE docker
RUN bash -c 'touch /app.jar'
ADD https://github.com/jwilder/dockerize/releases/download/${DOCKERIZE_VERSION}/dockerize-alpine-linux-amd64-${DOCKERIZE_VERSION}.tar.gz dockerize.tar.gz
RUN tar xzf dockerize.tar.gz
RUN chmod +x dockerize
ADD ${ARTIFACT_NAME}.jar /app.jar
RUN touch /app.jar
EXPOSE ${EXPOSED_PORT}
ENTRYPOINT ["java", "-XX:+UnlockExperimentalVMOptions", "-XX:+UseCGroupMemoryLimitForHeap", "-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
......@@ -38,6 +38,7 @@
<docker.image.prefix>mszarlinski</docker.image.prefix>
<docker.image.exposed.port>9090</docker.image.exposed.port>
<docker.image.dockerfile.dir>${basedir}</docker.image.dockerfile.dir>
<docker.image.dockerize.version>v0.6.1</docker.image.dockerize.version>
<docker.plugin.version>0.4.13</docker.plugin.version>
</properties>
......@@ -168,6 +169,7 @@
<buildArgs>
<ARTIFACT_NAME>${project.build.finalName}</ARTIFACT_NAME>
<EXPOSED_PORT>${docker.image.exposed.port}</EXPOSED_PORT>
<DOCKERIZE_VERSION>${docker.image.dockerize.version}</DOCKERIZE_VERSION>
</buildArgs>
</configuration>
</plugin>
......
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