This is an automated email from the ASF dual-hosted git repository. angeh pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/fineract-cn-docker-compose.git
commit 7c2009e2d4313ede49076d551e124f533a6a18d6 Merge: 4cadf2c a5e833a Author: Juhan Aasaru <[email protected]> AuthorDate: Tue Sep 10 15:42:17 2019 +0300 Merge remote-tracking branch 'anh3h/master' into anh3h_master Make it work with mac README.md | 7 ++- docker-compose.yml | 120 ++++++++++++++++++++++++++++++++------ env_variables | 15 +++++ external_tools/docker-compose.yml | 6 ++ start-up.sh | 26 +++++++++ 5 files changed, 154 insertions(+), 20 deletions(-) diff --cc README.md index c516bb1,2c38ea2..c0573e9 --- a/README.md +++ b/README.md @@@ -5,7 -5,10 +5,12 @@@ This project contains Docker Compose Sc - Docker - Docker-compose -## Perquisites ++## Automatic or manual provisioning ++ ++You can either try to provision automatically using bash script `bash start-up.sh` ++Or you could achieve the same state by manually following the instructions below: + -### Start-up Fineract CN microservices using bash script - `bash start-up.sh` +## Perquisites ### Generate .env file with RSA keys `java -cp external_tools/lang-0.1.0-BUILD-SNAPSHOT.jar org.apache.fineract.cn.lang.security.RsaKeyPairFactory UNIX > .env` diff --cc docker-compose.yml index d110ee2,af2648c..21717c7 --- a/docker-compose.yml +++ b/docker-compose.yml @@@ -30,7 -30,8 +30,9 @@@ services delay: 10s max_attempts: 3 networks: - - external_tools_default + external_tools_default: - ipv4_address: 172.16.238.6 ++ fineract: ++ ipv4_address: ${PROVISIONER_IP} identity-ms: image: apache/fineract-cn-identity:0.0.1-M.1 # TODO replace with latest @@@ -56,9 -57,10 +58,11 @@@ delay: 10s max_attempts: 3 networks: - - external_tools_default + external_tools_default: - ipv4_address: 172.16.238.7 ++ fineract: ++ ipv4_address: ${IDENTITY_IP} - # TODO HAS ERRORS: -# HAS ERRORS: ++ # TODO HAS ERRORS: # rhythm-ms: # image: apache/fineract-cn-rhythm:latest # environment: @@@ -76,7 -78,8 +80,9 @@@ # restart_policy: # condition: on-failure # networks: - # - external_tools_default -# external_tools_default: -# ipv4_address: 172.16.238.8 ++# external_tools_default: ++# fineract: ++# ipv4_address: ${RHYTHM_IP} office-ms: @@@ -97,7 -100,8 +103,9 @@@ system.privateKey.exponent: ${PRIVATE_KEY_EXPONENT} system.privateKey.modulus: ${PRIVATE_KEY_MODULUS} networks: - - external_tools_default + external_tools_default: - ipv4_address: 172.16.238.9 ++ fineract: ++ ipv4_address: ${OFFICE_IP} customer-ms: image: apache/fineract-cn-customer:latest @@@ -115,9 -119,10 +123,11 @@@ system.publicKey.modulus: ${PUBLIC_KEY_MODULUS} system.publicKey.timestamp: ${PUBLIC_KEY_TIMESTAMP} networks: - - external_tools_default + external_tools_default: - ipv4_address: 172.16.238.10 ++ fineract: ++ ipv4_address: ${CUSTOMER_IP} - ledger-ms: + accounting-ms: ports: - "2025:2025" image: apache/fineract-cn-accounting:latest @@@ -133,7 -138,8 +143,9 @@@ system.publicKey.modulus: ${PUBLIC_KEY_MODULUS} system.publicKey.timestamp: ${PUBLIC_KEY_TIMESTAMP} networks: - - external_tools_default + external_tools_default: - ipv4_address: 172.16.238.11 ++ fineract: ++ ipv4_address: ${ACCOUNTING_IP} portfolio-ms: image: apache/fineract-cn-portfolio:latest @@@ -150,7 -156,8 +162,8 @@@ system.publicKey.modulus: ${PUBLIC_KEY_MODULUS} system.publicKey.timestamp: ${PUBLIC_KEY_TIMESTAMP} networks: - - external_tools_default + external_tools_default: - ipv4_address: 172.16.238.12 ++ ipv4_address: ${PORTFOLIO_IP} deposit-account-management-ms: image: apache/fineract-cn-deposit-account-management:latest @@@ -168,7 -175,8 +181,9 @@@ system.publicKey.modulus: ${PUBLIC_KEY_MODULUS} system.publicKey.timestamp: ${PUBLIC_KEY_TIMESTAMP} networks: - - external_tools_default + external_tools_default: - ipv4_address: 172.16.238.13 ++ fineract: ++ ipv4_address: ${DEPOSIT_ACCOUNT_MANAGEMENT_IP} teller-ms: image: apache/fineract-cn-teller:latest @@@ -186,7 -194,8 +201,9 @@@ system.publicKey.modulus: ${PUBLIC_KEY_MODULUS} system.publicKey.timestamp: ${PUBLIC_KEY_TIMESTAMP} networks: - - external_tools_default + external_tools_default: - ipv4_address: 172.16.238.14 ++ fineract: ++ ipv4_address: ${TELLER_IP} reporting-ms: image: apache/fineract-cn-reporting:latest @@@ -204,10 -213,8 +221,29 @@@ system.publicKey.modulus: ${PUBLIC_KEY_MODULUS} system.publicKey.timestamp: ${PUBLIC_KEY_TIMESTAMP} networks: - - external_tools_default - # - # TODO add checques-ms - # + external_tools_default: - ipv4_address: 172.16.238.15 ++ fineract: ++ ipv4_address: ${REPORTING_IP} ++ ++ cheques-ms: ++ image: apache/fineract-cn-reporting:latest ++ ports: ++ - "2030:2030" ++ environment: ++ activemq.brokerUrl: ${ACTIVEMQ_BROKER_URL} ++ cassandra.contactPoints: ${CASSANDRA_CONTACT_POINTS} ++ eureka.client.serviceUrl.defaultZone: ${EUREKA_CLIENT_SERVICE_URL_DEFAULT_ZONE} ++ eureka.instance.hostname: ${EUREKA_INSTANCE_HOSTNAME} ++ postgresql.host: ${POSTGRESQL_HOST} ++ ribbon.listOfServers: ${RIBBON_EUREKA_SERVER} ++ spring.datasource.url: jdbc:postgresql://${POSTGRESQL_HOST}:${POSTGRESQL_PORT}/seshat ++ system.publicKey.exponent: ${PUBLIC_KEY_EXPONENT} ++ system.publicKey.modulus: ${PUBLIC_KEY_MODULUS} ++ system.publicKey.timestamp: ${PUBLIC_KEY_TIMESTAMP} ++ networks: ++ external_tools_default: ++ fineract: ++ ipv4_address: ${CHEQUES_IP} payroll-ms: image: apache/fineract-cn-payroll:latest @@@ -225,19 -232,50 +261,65 @@@ system.publicKey.modulus: ${PUBLIC_KEY_MODULUS} system.publicKey.timestamp: ${PUBLIC_KEY_TIMESTAMP} networks: - - external_tools_default - # - # TODO group-ms - # + external_tools_default: - ipv4_address: 172.16.238.16 ++ fineract: ++ ipv4_address: ${PAYROLL_IP} + + group-ms: + image: apache/fineract-cn-group:latest + ports: + - "2032:2032" + environment: + activemq.brokerUrl: ${ACTIVEMQ_BROKER_URL} + cassandra.contactPoints: ${CASSANDRA_CONTACT_POINTS} + eureka.client.serviceUrl.defaultZone: ${EUREKA_CLIENT_SERVICE_URL_DEFAULT_ZONE} + eureka.instance.hostname: ${EUREKA_INSTANCE_HOSTNAME} + postgresql.host: ${POSTGRESQL_HOST} + ribbon.listOfServers: ${RIBBON_EUREKA_SERVER} + spring.datasource.url: jdbc:postgresql://${POSTGRESQL_HOST}:${POSTGRESQL_PORT}/seshat + system.publicKey.exponent: ${PUBLIC_KEY_EXPONENT} + system.publicKey.modulus: ${PUBLIC_KEY_MODULUS} + system.publicKey.timestamp: ${PUBLIC_KEY_TIMESTAMP} + networks: + external_tools_default: - ipv4_address: 172.16.238.17 ++ fineract: ++ ipv4_address: ${GROUP_IP} ++ ++ notification-ms: ++ image: apache/fineract-cn-notification:latest ++ ports: ++ - "2033:2033" ++ environment: ++ activemq.brokerUrl: ${ACTIVEMQ_BROKER_URL} ++ cassandra.contactPoints: ${CASSANDRA_CONTACT_POINTS} ++ eureka.client.serviceUrl.defaultZone: ${EUREKA_CLIENT_SERVICE_URL_DEFAULT_ZONE} ++ eureka.instance.hostname: ${EUREKA_INSTANCE_HOSTNAME} ++ postgresql.host: ${POSTGRESQL_HOST} ++ ribbon.listOfServers: ${RIBBON_EUREKA_SERVER} ++ spring.datasource.url: jdbc:postgresql://${POSTGRESQL_HOST}:${POSTGRESQL_PORT}/seshat ++ system.publicKey.exponent: ${PUBLIC_KEY_EXPONENT} ++ system.publicKey.modulus: ${PUBLIC_KEY_MODULUS} ++ system.publicKey.timestamp: ${PUBLIC_KEY_TIMESTAMP} ++ networks: ++ external_tools_default: ++ ipv4_address: ${NOTIFICATION_IP} - # Docker image is not yet available - # notification-ms: - # image: apache/fineract-cn-notification:latest - # ports: - # - "2033:2033" - # environment: - # activemq.brokerUrl: ${ACTIVEMQ_BROKER_URL} - # cassandra.contactPoints: ${CASSANDRA_CONTACT_POINTS} - # eureka.client.serviceUrl.defaultZone: ${EUREKA_CLIENT_SERVICE_URL_DEFAULT_ZONE} - # eureka.instance.hostname: ${EUREKA_INSTANCE_HOSTNAME} - # postgresql.host: ${POSTGRESQL_HOST} - # ribbon.listOfServers: ${RIBBON_EUREKA_SERVER} - # spring.datasource.url: jdbc:postgresql://${POSTGRESQL_HOST}:${POSTGRESQL_PORT}/seshat - # system.publicKey.exponent: ${PUBLIC_KEY_EXPONENT} - # system.publicKey.modulus: ${PUBLIC_KEY_MODULUS} - # system.publicKey.timestamp: ${PUBLIC_KEY_TIMESTAMP} - # networks: - # external_tools_default: - # ipv4_address: 172.16.238.18 + fims-web-app: + image: aasaru/fineract-cn-fims-web-app:latest # TODO switch to apache repo + ports: + - "8888:8888" + networks: - - external_tools_default ++ external_tools_default: ++ fineract: ++ ipv4_address: ${FIMS_WEB_APP_IP} + networks: external_tools_default: external: name: external_tools_default ++ fineract: ++ driver: bridge ++ ipam: ++ config: ++ - subnet: 172.16.238.0/26 diff --cc env_variables index 16cc9ae,16cc9ae..2613508 --- a/env_variables +++ b/env_variables @@@ -13,3 -13,3 +13,18 @@@ POSTGRESQL_PORT=543 POSTGRESQL_USER=postgres RIBBON_EUREKA_SERVER=eureka:9090 SYSTEM_INITIAL_CLIENT_ID=service-runner ++FIMS_WEB_APP_IP=172.16.238.19 ++PROVISIONER_IP=172.16.238.20 ++IDENTITY_IP=172.16.238.21 ++RHYTHM_IP=172.16.238.22 ++OFFICE_IP=172.16.238.23 ++CUSTOMER_IP=172.16.238.24 ++ACCOUNTING_IP=172.16.238.25 ++PORTFOLIO_IP=172.16.238.26 ++DEPOSIT_ACCOUNT_MANAGEMENT_IP=172.16.238.27 ++TELLER_IP=172.16.238.28 ++REPORTING_IP=172.16.238.29 ++CHEQUES_IP=172.16.238.30 ++PAYROLL_IP_IP=172.16.238.31 ++GROUP_IP=172.16.238.32 ++NOTIFICATION_IP=172.16.238.33 diff --cc external_tools/docker-compose.yml index 1f30a07,1f30a07..f6aec16 --- a/external_tools/docker-compose.yml +++ b/external_tools/docker-compose.yml @@@ -69,3 -69,3 +69,9 @@@ volumes cassandra-volume: postgres-volume: ++networks: ++ default: ++ driver: bridge ++ ipam: ++ config: ++ - subnet: 172.16.238.64/29 diff --cc start-up.sh index 0000000,14a2fdf..97deace mode 000000,100755..100755 --- a/start-up.sh +++ b/start-up.sh @@@ -1,0 -1,29 +1,26 @@@ + #!/bin/sh + set -e + -echo "Createing docker service network" -docker network create --driver=bridge --subnet=172.16.238.0/24 external_tools_default - + cd external_tools/ + docker-compose up -d + cassandra_ip=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' cassandra) + postgres_ip=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' postgres) + + # #Test Cassandra and Postgres + echo "Waiting for Cassandra and Postgres ..." + while ! nc -z "${cassandra_ip}" 9042 ; do + sleep 1 + done + while ! nc -z "${postgres_ip}" 5432 ; do + sleep 1 + done + echo "Cassandra and Postgres are up and running..." + cd .. + + echo "Starting up Fineract CN microservices..." + wget https://mifos.jfrog.io/mifos/libs-snapshot-local/org/apache/fineract/cn/lang/0.1.0-BUILD-SNAPSHOT/lang-0.1.0-BUILD-SNAPSHOT.jar + java -cp lang-0.1.0-BUILD-SNAPSHOT.jar org.apache.fineract.cn.lang.security.RsaKeyPairFactory UNIX > .env + cat env_variables >> .env + + docker-compose up -d + echo "Successfully started fineract services."
