Hi Hitesh,

Yes, starting different components in respective containers is an ideal 
approach. The PR link contains a README which explains how to build individual 
images for different components. The Dockerfile has been abstracted to take the 
component name as a parameter during “docker build –t <component>”.

Regarding the configurations, you can also try leveraging Docker environment 
variables during docker container startup, and similarly link containers to 
achieve component-to-component communication using a hostname. I agree it’s not 
the best approach, because in the long run when we scale containers and add 
High Availability, we will need to add service level load-balancers. The good 
news though, performing container linking and referencing components using 
hostnames (a.k.a service names), will allow us to fully exploit default load 
balancing features provided by nearly all orchestration frameworks such as 
Kubernetes, DC/OS, Swarm, etc.

Let me know if you need help.

Thanks and Regards,
Gourav Shenoy

From: Hitesh Kumar Dasika <[email protected]>
Reply-To: "[email protected]" <[email protected]>
Date: Saturday, September 30, 2017 at 2:24 PM
To: "[email protected]" <[email protected]>
Subject: [FALL-2017] Dockerizing Airavata PGA

Hello Dev

I am in the process of writing a Dockerfile for Dockerizing Airavata PGA 
Gateway. My end goal is to replace the current ansible installation of Airavata 
PGA Gateway with a Docker Container

PR which is still developing: https://github.com/apache/airavata/pull/122

Some Considerations that I want to make:

1. Through the ansible playbook, firewalld is installed and is configured. But 
when the app is installed in a container, there is no need for firewalld as we 
can access the container only through the port exposed. The host system can be 
configured with firewalld which makes more sense.

2.  The second thing is default configurations which need to be copied. There 
are many conf files and there are placeholders in those which are replaced by 
ansible. Whereas in Docker container creation, such configurations need to be 
copied without placeholders into the containers. To achieve this, my plan is to 
include a volume which is mounted to the container and that volume will have 
all the configuration files in it. The user will have the option to change 
configurations in those files.

Any Suggestions would be appreciated.

@Gourav
The PR contains a single dockerfile for all the services. But won't it be good 
if there are different containers with different components in them? This 
approach will also be helpful for orchestration



Regards

Hitesh Kumar Dasika



Reply via email to