docker-compose.yml 9.23 KiB
version: '3.8'
services: 
  keycloak-casa-db:
    image: postgres
    ports:
      - 5432:5432
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgres
      POSTGRES_DB: keycloak
    volumes:
      - data:/var/lib/postgresql/data
  casa-user-data-service:
    build:
      context: https://github.com/UPHRH-platform/casa-user-data-service.git#main
    image: casa-user-data-service
    ports:
      - 3000:3000
  keycloak-casa:
    image: keycloak-casa
    build: ./keycloak-casa
    depends_on:
      - keycloak-casa-db
      - casa-user-data-service
    ports:
      - 8080:8080 
    environment:
      KC_DB_URL: jdbc:postgresql://keycloak-casa-db:5432/keycloak
      KC_DB_USERNAME: postgres
      KC_DB_PASSWORD: postgres
      KC_HOSTNAME: locahost
      KC_DB: postgres
      KEYCLOAK_ADMIN: admin
      KEYCLOAK_ADMIN_PASSWORD: admin
    command:
      - "start-dev"
  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:
7172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
- 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
141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
- 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:
211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280
- 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
281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312
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: