Hello Ange,

That's what I did. I explained that since the containers are within the
same network, they could be referenced by their hostname instead of the
IP addresses.
But you right, changing it will break the provision script. Actually, I
didn't use that script (because I'm on a windows machine) instead I used
postman to call directly the API thanks to
https://github.com/senacor/fineract-setup/tree/master/scripts/postman

Adapting the config.txt file and replacing the hardcoded IP address by the
hostname will fix it. For example cassandra.contactPoints=cassandra:9090
instead of cassandra.contactPoints=172.16.238.5:9090.

I understand why you hardcoded the IP address, but IMHO, letting docker
assign automatically the IP address and using the hostname it's more simple
and less verbose.

Kind regards,
Patrick

On Thu, Jan 3, 2019 at 12:28 PM Courage Angeh <couragean...@gmail.com>
wrote:

> Hi Patrick,
>
> Thanks for the explanation. The hardcoded IP addresses are necessary. The
> is a provisioner script that uses these addresses to provision the system
> after startup. Starting the Fineract CN services is just one part of the
> set-up process.
> If you read the README you will realize that.
>
> I think it would have been better for you to ask me why I hardcoded the IP
> address and/or you explain why you think it's not necessary and we all
> agree on that before you conclude that it not necessary and tell another
> person that it is not. Don't you think so?
>
> Nevertheless, Thanks for your contribution and please keep it flowing.
>
> Thanks,
> Courage.
>
> On Thu, Jan 3, 2019 at 10:59 AM Patrick Finken <patr...@finksolutions.ca>
> wrote:
>
> > Hello Juan,
> > I used the scripts from this repo:
> > https://github.com/openMF/fineract-cn-containers which seems to be the
> > more
> > updated.
> >
> > You don't need to add all the services to a network because they are
> > automatically added to the same network as the external services.
> > If you look a the end of the docker-compose.yml, you will see this :
> > networks:
> > default:
> > external:
> > name: externaltools_app_net
> >
> > That is the network that is created when you run "docker-compose up" in
> the
> > external_tools folder.
> > This is why you are able to use the hostname (ex: cassandra:9090). All
> > containers are within the same network.
> >
> > Actually, all the "networks" section with the hardcoded IP address should
> > be removed from all services. The network section at the end of the file
> is
> > enough.
> >
> > Patrick
> >
> > On Tue, Jan 1, 2019 at 3:26 PM Juhan Aasaru <aas...@gmail.com> wrote:
> >
> > > Hi Patrick and Courage!
> > >
> > > Patrick, thanks for sharing the tip how to get the docker-compose
> version
> > > of services working without configuring static IP addresses.
> > > After adding Fineract microservices to "app_net" network I was
> > > successful using this approach (with one micro service for now - I plan
> > to
> > > test with more later).
> > >
> > > Courage, thanks for explaining the logic. I still think that having
> > > hardcoded IP addresses is not a good idea because (as I understand
> > Docker)
> > > then if you run containers then several copies of the same microservice
> > > might be started to handle the load and make the service fail proof. I
> > > don't think this can work well with hardcoded IP addresses as you can
> > only
> > > assign one IP to one specific instance.
> > >
> > > I proposed a fix (I added to the pull request mentioned before), also
> > > visible here:
> > >
> > >
> >
> https://github.com/Anh3h/fineract-cn-docker-scripts/pull/1/commits/c4c4c8ee3e4ccfa1eda9c38fecb018952d488df1
> > >
> > > One of the reasons why you might have used static IP addresses is to
> > refer
> > > to external tools (cassandra, activemq, etc)
> > > from the Fineract microservices. They don't know about each other since
> > > they are declared in two different docker-compose files.
> > > To overcome this I added all the Fineract microservices to "app_net"
> > > network as I wrote above. This way I managed to start rythm-ms
> > > and it started up with no errors.
> > >
> > > Patrick suggested replacing IP addresses with service names but in
> order
> > to
> > > follow a similar approach to networking and static IP addresses
> > > I used network aliases instead ("cassandra.service", "rythm.service",
> > etc).
> > >
> > > The downside is that start-up.sh script cannot now use IP to refer to
> > > Cassandra service. I don't yet know how to solve that
> > > so you could also just ignore my pull request, Courage. It is more to
> > > demonstrate how static IP-s could be removed from docker-compose.
> > >
> > > Kind regards
> > > Juhan Aasaru
> > >
> > >
> > >
> > >
> > > Kontakt Courage Angeh (<couragean...@gmail.com>) kirjutas kuupƤeval E,
> > 31.
> > > detsember 2018 kell 01:25:
> > >
> > > > Hi Patrick,
> > > >
> > > > Yea, since they are on the same network you can use the hostname
> > instead.
> > > > But the docker-compose file is different so you would want to check
> > that
> > > > out.
> > > >
> > > > Thanks,
> > > > Courage.
> > > >
> > > > On Sun, Dec 30, 2018 at 1:16 PM Patrick Finken <
> > patr...@finksolutions.ca
> > > >
> > > > wrote:
> > > >
> > > > > Hey Juhan,
> > > > >
> > > > > I manage to deploy on docker using the script here:
> > > > > https://github.com/openMF/fineract-cn-containers. It seems to be
> the
> > > > same.
> > > > > Since the containers are part of the same network, actually you
> don't
> > > > have
> > > > > to use the IP addresses. You can directly use the container
> hostname.
> > > > > for example instead of this:
> > > > >
> > > > > identity-ms:
> > > > > build:
> > > > > context: ./identity-ms-scripts
> > > > > dockerfile: Dockerfile
> > > > > container_name: identity-ms
> > > > > environment:
> > > > > eureka.instance.hostname: 172.16.238.2
> > > > > ribbon.listOfServers: 172.16.238.2:9090
> > > > > eureka.client.serviceUrl.defaultZone:
> > http://172.16.238.2:8761/eureka
> > > > > activemq.brokerUrl: tcp://172.16.238.3:61616
> > > > > cassandra.contactPoints: 172.16.238.5:9042
> > > > > mariadb.host: 172.16.238.4
> > > > > system.publicKey.timestamp: 2018-10-10T01_01_15
> > > > > system.publicKey.modulus:
> > > > >
> > > > >
> > > >
> > >
> >
> 18830417865504754663596657921169981388613608618114181257730232626007046104205069610563634060207899189424089915821981663929865082241370961151496748704877748259390459829186594341836017608519010700832900450611837813953253561963866572420310400523511657369829766416803363168491886414799775820748756499203093647390636959841752155645685561162742188977961694005704440347615513393284989322067719641549057293319957667170169198305510723774385566981450654256215485917703358999975306907551370265528935629966530892656985959818205610297140283766405889374249542201561470010250064433930099114538970547846267201625038851781585379046349
> > > > > system.publicKey.exponent: 65537
> > > > > networks:
> > > > > default:
> > > > > ipv4_address: 172.16.238.7
> > > > >
> > > > > you can use this :
> > > > >
> > > > > identity-ms:
> > > > > build:
> > > > > context: ./identity-ms-scripts
> > > > > dockerfile: Dockerfile
> > > > > container_name: identity-ms
> > > > > environment:
> > > > > eureka.instance.hostname: eureka
> > > > > ribbon.listOfServers: eureka:9090
> > > > > eureka.client.serviceUrl.defaultZone: http://eureka:8761/eureka
> > > > > activemq.brokerUrl: tcp://activemq:61616
> > > > > cassandra.contactPoints: cassandra:9042
> > > > > mariadb.host: mariadb
> > > > > system.publicKey.timestamp: 2018-10-10T01_01_15
> > > > > system.publicKey.modulus:
> > > > >
> > > > >
> > > >
> > >
> >
> 18830417865504754663596657921169981388613608618114181257730232626007046104205069610563634060207899189424089915821981663929865082241370961151496748704877748259390459829186594341836017608519010700832900450611837813953253561963866572420310400523511657369829766416803363168491886414799775820748756499203093647390636959841752155645685561162742188977961694005704440347615513393284989322067719641549057293319957667170169198305510723774385566981450654256215485917703358999975306907551370265528935629966530892656985959818205610297140283766405889374249542201561470010250064433930099114538970547846267201625038851781585379046349
> > > > > system.publicKey.exponent: 6553
> > > > >
> > > > > I will create a PR to adjust it.
> > > > > Hope it will help you.
> > > > >
> > > > > Patrick
> > > > >
> > > > >
> > > > > On Sun, Dec 30, 2018 at 11:14 AM Juhan Aasaru <aas...@gmail.com>
> > > wrote:
> > > > >
> > > > > > Hi Courage,
> > > > > >
> > > > > > I also checked out the work you have done on containers as I also
> > > plan
> > > > to
> > > > > > deploy the Fineract CN services to the cloud. Would you mind
> > > > explaining a
> > > > > > few things for me:
> > > > > >
> > > > > > 1. I tried running the scripts (taken from your GitHub fork)
> > locally
> > > (I
> > > > > > always find I need to be able to run anything locally first
> before
> > > > > > deploying to anywhere else).
> > > > > > I tried out both the Kubernetes scripts (with Minikube) and the
> > > > > > docker-compose scripts. I didn't manage to get them running
> because
> > > of
> > > > > the
> > > > > > hardcoded IP addresses (there is no easy method in mac to have
> > > several
> > > > > > static IP addresses at the same time). I don't have much
> experience
> > > > with
> > > > > > deploying container-based
> > > > > > systems so if you could elaborate on the topic a bit and if it
> > would
> > > > make
> > > > > > sense to
> > > > > > to replace IP addresses with service names or aliases.
> > > > > >
> > > > > > 2. The docker-compose.yml in root directory has all of the
> services
> > > > > besides
> > > > > > rythm-ms commented out. Can one just comment other services back
> in
> > > or
> > > > is
> > > > > > there some work that needs to be done first?
> > > > > >
> > > > > > 3. I think I found a typo in external-scripts/docker-compose.yml
> > > > > > You have mapped Cassandra port 9042 to port 9142 for the outside
> > > world
> > > > > but
> > > > > > I think it should be still 9042. I created a pull request for you
> > > repo
> > > > to
> > > > > > fix this.
> > > > > >
> > > > > > I hope you have a chance to help me with my questions.
> > > > > >
> > > > > > Thanks
> > > > > > Juhan Aasaru
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > Kontakt Courage Angeh (<couragean...@gmail.com>) kirjutas
> > kuupƤeval
> > > K,
> > > > > 26.
> > > > > > detsember 2018 kell 17:29:
> > > > > >
> > > > > > > Hi Patrick,
> > > > > > >
> > > > > > > Could you check this out instead?
> > > > > > > https://github.com/Anh3h/fineract-cn-docker-scripts
> > > > > > > I am still to merge that into the Mifos codebase
> > > > > > > That should work.
> > > > > > >
> > > > > > > Thanks,
> > > > > > > Courage.
> > > > > > >
> > > > > > > On Tue, Dec 25, 2018 at 6:04 PM Patrick Finken <
> > > > > patr...@finksolutions.ca
> > > > > > >
> > > > > > > wrote:
> > > > > > >
> > > > > > > > Hello Courage,
> > > > > > > >
> > > > > > > > Actually, the script is from
> > > > > > > > https://github.com/openMF/fineract-cn-containers. The
> problem
> > is
> > > > > that
> > > > > > > the
> > > > > > > > provisioner is expecting two properties that are not
> specified
> > in
> > > > the
> > > > > > > > Dockerfile.
> > > > > > > >
> > > > > > > > provisioner    | ***************************
> > > > > > > > provisioner    | APPLICATION FAILED TO START
> > > > > > > > provisioner    | ***************************
> > > > > > > >
> > > > > > > > provisioner    | Description:
> > > > > > > > provisioner    |
> > > > > > > > provisioner    | Binding to target
> > > > > > > > org.apache.fineract.cn
> > > > .provisioner.config.SystemProperties@72443081
> > > > > > > > failed:
> > > > > > > > provisioner    |
> > > > > > > > provisioner    |     Property: system.privateKey.modulus
> > > > > > > > provisioner    |     Value: null
> > > > > > > > provisioner    |     Reason: may not be null
> > > > > > > > provisioner    |
> > > > > > > > provisioner    |     Property: system.privateKey.exponent
> > > > > > > > provisioner    |     Value: null
> > > > > > > > provisioner    |     Reason: may not be null
> > > > > > > >
> > > > > > > > But I kind of figured out the solution. I used a tool online
> to
> > > > > > generate
> > > > > > > a
> > > > > > > > RSA key.
> > > > > > > > I'm all set now. The platform is running. Thanks
> > > > > > > >
> > > > > > > > Merry Christmas
> > > > > > > > Patrick
> > > > > > > >
> > > > > > > > On Tue, Dec 25, 2018 at 6:43 AM Courage Angeh <
> > > > > couragean...@gmail.com>
> > > > > > > > wrote:
> > > > > > > >
> > > > > > > > > Hi Patrick,
> > > > > > > > >
> > > > > > > > > You wouldn't want to deactivate it 'cause its needed for
> > > > > > > authentication.
> > > > > > > > > I containerized Fineract CN as a summer of code project,
> that
> > > > > should
> > > > > > > help
> > > > > > > > > you out.
> > > > > > > > > https://github.com/openMF/fineract-cn-containers
> > > > > > > > >
> > > > > > > > > Merry Christmas,
> > > > > > > > > Courage.
> > > > > > > > >
> > > > > > > > > On Tue, Dec 25, 2018 at 1:22 AM Patrick Finken <
> > > > > > > patr...@finksolutions.ca
> > > > > > > > >
> > > > > > > > > wrote:
> > > > > > > > >
> > > > > > > > > > Hello Everyone,
> > > > > > > > > >
> > > > > > > > > > I'm Patrick. I've recently discovered Fineract CN and I
> > might
> > > > be
> > > > > > > > > interested
> > > > > > > > > > to use as a backend system for a financial application
> I'm
> > > > > > building.
> > > > > > > > > > I succeed to build and launch the demo-server on my local
> > > > > machine,
> > > > > > > but
> > > > > > > > > I'm
> > > > > > > > > > stuck when I try to run it inside containers.
> > > > > > > > > > I used the script from the repo
> > > > "apache/fineract-cn-provisioner",
> > > > > > but
> > > > > > > > the
> > > > > > > > > > provisioner service failed to run because of the missing
> > > > > > > configuration
> > > > > > > > > > "system.privateKey.modulus" and
> > "system.privateKey.exponent".
> > > > I'm
> > > > > > > > > > guessing it's related to some RSA configuration, but
> there
> > > is a
> > > > > way
> > > > > > > to
> > > > > > > > > > deactivate it in order to run and test the API?
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > regards
> > > > > > > > > > --
> > > > > > > > > > Patrick,
> > > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > --
> > > > > > > > Patrick Finken,
> > > > > > > > Owner
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > > >
> > > > > --
> > > > > Patrick Finken,
> > > > > Owner
> > > > >
> > > >
> > >
> >
> >
> > --
> > Patrick Finken,
> > Owner
> >
>


-- 
Patrick Finken,
Owner

Reply via email to