FROM adoptopenjdk/openjdk8-openj9:alpine-slim
ENV FILE_SYSTEM_LOCATION /var/app/data
VOLUME $FILE_SYSTEM_LOCATION
RUN mkdir -p $FILE_SYSTEM_LOCATION
COPY ./build/libs/*.jar service.jar
CMD java $JAVA_OPTS -jar -noverify -XX:TieredStopAtLevel=1 -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -Xshareclasses:nonfatal -Xquickstart -Dspring.profiles.active=docker service.jar
version: '3'
services:
app:
build: .
ports:
- 8080:8080
networks:
- app
depends_on:
- mongo
environment:
CORS_ALLOWED_ORIGINS: http://localhost:8000,http://localhost:9000
UNLEASH_API_URL: http://unleash:4242/api/
mongo:
image: bitnami/mongodb
ports:
- 27017:27017
networks:
- app
environment:
MONGODB_ROOT_PASSWORD: rootPassword
MONGODB_DATABASE: app
MONGODB_USERNAME: username
MONGODB_PASSWORD: password
volumes:
- mongodb_data:/bitnami
keycloak:
image: jboss/keycloak:4.8.3.Final
ports:
- 9080:9080
environment:
DB_VENDOR: POSTGRES
DB_ADDR: keycloak-db
DB_DATABASE: keycloak
DB_USER: keycloak
DB_PASSWORD: password
KEYCLOAK_USER: admin
KEYCLOAK_PASSWORD: admin
KEYCLOAK_IMPORT: /tmp/realm/test-realm.json
networks:
- app
depends_on:
- keycloak-db
volumes:
- ./docker/keycloak/realm:/tmp/realm
command:
- "-b 0.0.0.0"
- "-Djboss.http.port=9080"
- "-Dkeycloak.profile.feature.admin_fine_grained_authz=enabled"
keycloak-db:
image: postgres:11
volumes:
- postgres_data:/var/lib/postgresql/data
environment:
POSTGRES_DB: keycloak
POSTGRES_USER: keycloak
POSTGRES_PASSWORD: password
networks:
- app
unleash:
image: unleashorg/unleash-server:3.2
ports:
- "4242:4242"
environment:
DATABASE_URL: postgres://postgres:unleash@unleash-db/postgres
depends_on:
- unleash-db
command: >
sh -c "
while ! nc -z unleash-db 5432; do
echo 'Postgres is unavailable.'
sleep 1
done
npm run start"
networks:
- app
unleash-db:
image: postgres:10-alpine
networks:
- app
volumes:
- unleash_data:/var/lib/postgresql/data
networks:
app:
volumes:
mongodb_data:
postgres_data:
unleash_data: