From a2586d6c644fa6ac845512f47b202ba54370419e Mon Sep 17 00:00:00 2001
From: tushar5526 <codingid6@gmail.com>
Date: Tue, 17 Jan 2023 10:13:08 +0530
Subject: [PATCH] feat: added lr-service and registry-casa in compose

---
 docker-compose.yml | 275 ++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 272 insertions(+), 3 deletions(-)

diff --git a/docker-compose.yml b/docker-compose.yml
index 7007b5d..5ff1e0c 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -1,4 +1,4 @@
-version: '3.7'
+version: '3.8'
 services: 
   keycloak-casa-db:
     image: postgres
@@ -9,7 +9,7 @@ services:
       POSTGRES_PASSWORD: postgres
       POSTGRES_DB: keycloak
     volumes:
-      - db:/var/lib/postgresql/data
+      - data:/var/lib/postgresql/data
 
   casa-user-data-service:
     build:
@@ -37,6 +37,275 @@ services:
     command:
       - "start-dev"
 
-volumes:
+  lr-service:
+    image: lr-service
+    build:
+      context: https://github.com/UPHRH-platform/lr-service.git#main
+    ports:
+      - 5000:5000
+    # env_file:
+    #   - 
+
+  es:
+    image: docker.elastic.co/elasticsearch/elasticsearch:7.10.1
+    environment:
+      - discovery.type=single-node
+      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
+      - ELASTIC_PASSWORD=${ELASTIC_SEARCH_PASSWORD}
+      - xpack.security.enabled=${ELASTIC_SECURITY_ENABLED-false}
+    ports:
+      - "9200:9200"
+      - "9300:9300"
+    healthcheck:
+      test: [ "CMD", "curl", "-f", "localhost:9200/_cluster/health", "--header",  "Authorization: Basic ZWxhc3RpYzpEa0llZFBQU0Ni" ]
+      interval: 30s
+      timeout: 10s
+      retries: 4
   db:
+    image: postgres
+    volumes:
+      - ./${DB_DIR-db-data}:/var/lib/postgresql/data
+    ports:
+      - "5432:5432"
+    environment:
+      - POSTGRES_DB=registry
+      - POSTGRES_USER=postgres
+      - POSTGRES_PASSWORD=postgres
+    healthcheck:
+      test: [ "CMD-SHELL", "pg_isready -U postgres" ]
+      interval: 10s
+      timeout: 5s
+      retries: 5
+  registry:
+    image: dockerhub/sunbird-rc-core:${RELEASE_VERSION}
+    volumes:
+      - ${PWD}/${SCHEMA_DIR-java/registry/src/main/resources/public/_schemas}:/home/sunbirdrc/config/public/_schemas
+    environment:
+      - connectionInfo_uri=jdbc:postgresql://db:5432/registry
+      - connectionInfo_username=postgres
+      - connectionInfo_password=postgres
+      - elastic_search_connection_url=es:9200
+      - elastic_search_auth_enabled=${ELASTIC_SECURITY_ENABLED-false}
+      - elastic_search_username=${ELASTIC_SEARCH_USERNAME-elastic}
+      - elastic_search_password=${ELASTIC_SEARCH_PASSWORD}
+      - search_providerName=${SEARCH_PROVIDER_NAME-dev.sunbirdrc.registry.service.ElasticSearchService}
+      - sunbird_sso_realm=${KEYCLOAK_REALM-sunbird-rc}
+      - sunbird_sso_url=http://keycloak:8080/auth
+      - sunbird_sso_admin_client_id=${KEYCLOAK_ADMIN_CLIENT_ID-admin-api}
+      - sunbird_sso_client_id=${KEYCLOAK_CLIENT_ID-registry-frontend}
+      - sunbird_sso_admin_client_secret=fd11a771-810b-4b9d-bbb5-c690ada67253
+      - claims_url=http://claim-ms:8082
+      - sign_url=http://certificate-signer:8079/sign
+      - sign_health_check_url=http://certificate-signer:8079/health
+      - signature_enabled=true
+      - pdf_url=http://certificate-api:8078/api/v1/certificatePDF
+      - certificate_health_check_url=http://certificate-api:8078/health
+      - template_base_url=http://registry:8081/api/v1/templates/ #Looks for certificate templates for pdf copy of the signed certificate
+      - sunbird_keycloak_user_set_password=true
+      - filestorage_connection_url=http://file-storage:9000
+      - filestorage_access_key=admin
+      - filestorage_secret_key=12345678
+      - filestorage_bucket_key=issuance
+      - registry_base_apis_enable=false
+      - sunbird_keycloak_user_password=abcd@123
+      - logging.level.root=INFO
+      - enable_external_templates=true
+      - async_enabled=${ASYNC_ENABLED-false}
+      - authentication_enabled=true
+      - kafka_bootstrap_address=kafka:9092
+      - webhook_enabled=false
+      - webhook_url=http://localhost:5001/api/v1/callback
+      - redis_host=redis
+      - redis_port=6379
+      - manager_type=${MANAGER_TYPE-DefinitionsManager}
+    ports:
+      - "8081:8081"
+    depends_on:
+      es:
+        condition: service_healthy
+      db:
+        condition: service_healthy
+    healthcheck:
+      test: [ "CMD-SHELL", "wget -nv -t1 --spider http://localhost:8081/health || exit 1" ]
+      interval: 30s
+      timeout: 10s
+      retries: 4
+  keycloak:
+    image: dockerhub/sunbird-rc-keycloak:latest
+    volumes:
+      - ${PWD}/${KEYCLOAK_IMPORT_DIR-imports}:/opt/jboss/keycloak/imports
+    environment:
+      - KEYCLOAK_LOGO=https://svgshare.com/i/hCs.svg
+      - DB_VENDOR=postgres
+      - DB_ADDR=db
+      - DB_PORT=5432
+      - DB_DATABASE=registry
+      - DB_USER=postgres
+      - DB_PASSWORD=postgres
+      - KEYCLOAK_USER=${KEYCLOAK_ADMIN_USER-admin}
+      - KEYCLOAK_PASSWORD=${KEYCLOAK_ADMIN_PASSWORD-admin}
+      - KEYCLOAK_IMPORT=/opt/jboss/keycloak/imports/realm-export.json
+      - PROXY_ADDRESS_FORWARDING=true
+    healthcheck:
+      test:
+        ["CMD-SHELL", "curl -f http://localhost:9990/ || exit 1"]
+      interval: 30s
+      timeout: 10s
+      retries: 5
+    ports:
+      - "8080:8080"
+      - "9990:9990"
+    depends_on:
+      db:
+        condition: service_healthy
+  claim-ms:
+    image: dockerhub/sunbird-rc-claim-ms:${RELEASE_VERSION}
+    environment:
+      - connectionInfo_uri=jdbc:postgresql://db:5432/registry
+      - connectionInfo_username=postgres
+      - connectionInfo_password=postgres
+      - sunbirdrc_url=http://registry:8081
+    ports:
+      - "8082:8082"
+    depends_on:
+      db:
+        condition: service_started
+      registry:
+        condition: service_started
+    healthcheck:
+      test: [ "CMD-SHELL", "wget -nv -t1 --spider http://localhost:8082/health || exit 1" ]
+      interval: 30s
+      timeout: 10s
+      retries: 4
+  certificate-signer:
+    image: dockerhub/sunbird-rc-certificate-signer:${RELEASE_VERSION}
+    environment:
+      - PORT=8079
+    ports:
+      - "8079:8079"
+    volumes:
+      - ./imports:/etc/signer
+    healthcheck:
+      test:
+        [ "CMD-SHELL", "curl -f http://localhost:8079/health || exit 1" ]
+      interval: 30s
+      timeout: 10s
+      retries: 5
+  certificate-api:
+    image: dockerhub/sunbird-rc-certificate-api:${RELEASE_VERSION}
+    environment:
+      - PORT=8078
+    ports:
+      - "8078:8078"
+    healthcheck:
+      test:
+        [ "CMD-SHELL", "wget -nv -t1 --spider http://localhost:8078/health || exit 1" ]
+      interval: 30s
+      timeout: 10s
+      retries: 5
+  file-storage:
+    image: quay.io/minio/minio
+    volumes:
+      - ${HOME}/minio/data:/data
+    environment:
+      - MINIO_ROOT_USER=admin
+      - MINIO_ROOT_PASSWORD=12345678
+    command: server --address 0.0.0.0:9000 --console-address 0.0.0.0:9001 /data
+    ports:
+      - "9000:9000"
+      - "9001:9001"
+    healthcheck:
+      test: [ "CMD", "curl", "-f", "http://localhost:9000/minio/health/live" ]
+      interval: 30s
+      timeout: 20s
+      retries: 3
+  notification-ms:
+    image: dockerhub/sunbird-rc-notification-service:${RELEASE_VERSION}
+    ports:
+      - "8765:8765"
+    healthcheck:
+      test:
+        [ "CMD-SHELL", "wget -nv -t1 --spider http://localhost:8765/notification-service/v1/health || exit 1" ]
+      interval: 30s
+      timeout: 10s
+      retries: 5
+  zookeeper:
+    image: confluentinc/cp-zookeeper:latest
+    ports:
+      - "2181:2181"
+    environment:
+      ZOOKEEPER_CLIENT_PORT: "2181"
+      ZOOKEEPER_TICK_TIME: "2000"
+  kafka:
+    image: confluentinc/cp-kafka:latest
+    depends_on:
+      zookeeper:
+        condition: service_started
+    ports:
+      - "9092:9092"
+    environment:
+      KAFKA_BROKER_ID: "1"
+      KAFKA_ZOOKEEPER_CONNECT: "zookeeper:2181"
+      KAFKA_ADVERTISED_LISTENERS: "INTERNAL://kafka:9092,OUTSIDE://localhost:9094"
+      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: "INTERNAL:PLAINTEXT,OUTSIDE:PLAINTEXT"
+      KAFKA_INTER_BROKER_LISTENER_NAME: "INTERNAL"
+      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: "1"
+    healthcheck:
+      test:
+        [ "CMD", "kafka-topics", "--list", "--zookeeper", "zookeeper:2181" ]
+      interval: 30s
+      timeout: 10s
+      retries: 4
+  public-key-service:
+    image: dockerhub/sunbird-rc-public-key-service
+    environment:
+      - CONFIG_BASE_PATH=/etc/keys
+    ports:
+      - "3300:3300"
+    healthcheck:
+      test: [ "CMD", "curl", "-f", "localhost:3300/public-key-service/api/v1/health" ]
+      interval: 30s
+      timeout: 10s
+      retries: 4
+    volumes:
+      - ./imports:/etc/keys
+  context-proxy-service:
+    image: dockerhub/sunbird-rc-context-proxy-service
+    ports:
+      - "4400:4400"
+    healthcheck:
+      test: [ "CMD", "curl", "-f", "localhost:4400/health" ]
+      interval: 30s
+      timeout: 10s
+      retries: 4
+  nginx:
+    image: dockerhub/sunbird-rc-nginx
+    ports:
+      - "80:80"
+    depends_on:
+      registry:
+        condition: service_healthy
+      context-proxy-service:
+        condition: service_started
+      public-key-service:
+        condition: service_started
+      keycloak:
+        condition: service_started
+      claim-ms:
+        condition: service_started
+      file-storage:
+        condition: service_started
+    healthcheck:
+      test: [ "CMD", "curl", "-f", "localhost:80" ]
+      interval: 30s
+      timeout: 10s
+      retries: 4
+  redis:
+    image: redis:latest
+    ports:
+      - "6379:6379"
+
+
+volumes:
+  data:
 
-- 
GitLab