airavata-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Pankaj Saha <psa...@binghamton.edu>
Subject Re: airavata-server docker open issues
Date Thu, 23 Jul 2015 17:14:49 GMT
Hi Shameera,

Here is an issue with the env variables.
First time when we create a docker container we will pass the rabbitmq host
ip as env variable in the run command.


> docker run -i -d --name test --env RABBITMQ=172.0.23.15 -t server:test


But after stopping the container if we restart the container again then
that env variable will no longer be there (as we can not pass env variable
in the start command), which will cause a failure.

docker start test


I have tested with an example, this is a problem. I think the script
approach is fine as it writes the rabbitmq host ip in the properties file
so need not to rely on env variable next time onward.
what do you think?

Thanks
Pankaj



On Thu, Jul 23, 2015 at 11:47 AM, Shameera Rathnayaka <
shameerainfo@gmail.com> wrote:

> Hi Pankaj,
>
>
> On Thu, Jul 23, 2015 at 11:36 AM Pankaj Saha <psaha4@binghamton.edu>
> wrote:
>
>> Yes my startup script reading the ip of the container and on startup and
>>  its replacing the properties file's value.
>>
>> What I am asking is how this can be achieved by system properties (as you
>> suggested earlier ) without manipulating the properties file?
>> Do you suggest to set that as env variable on start up and then this env
>> variable can be auto replaced in the airavata-server properties file? I
>> don't know how I can achieve that replacement.
>>
>
> Yes setting with ENV should work . e.g.:  ENV rabbitmq.broker.url <url>
>
>
>> On Thu, Jul 23, 2015 at 10:50 AM, Shameera Rathnayaka <
>> shameerainfo@gmail.com> wrote:
>>
>>> For this we can use entry point or startup script which set
>>> apiserve.server.host=<docker-ip> system property. You can read docker-ip
at
>>> startup, you already do this in startup script isn't it?.
>>>
>>>
>>>
>>> On Thu, Jul 23, 2015 at 10:28 AM Pankaj Saha <psaha4@binghamton.edu>
>>> wrote:
>>>
>>>> Hi Shameera,
>>>> Ok if this is the case then we are okay. For rabbitmq host ip this will
>>>> work then.
>>>> but problem with a*piserver.server.host=localhost* will still exist.
>>>> Every time we start a container this will change and we can not pass this
>>>> ass env variables as we don't know the ip of a container until it starts.
>>>>
>>>> please suggest if you have any way out to this problem.
>>>>
>>>> Thanks
>>>> Pankaj
>>>>
>>>>
>>>>
>>>> On Wed, Jul 22, 2015 at 10:44 PM, Shameera Rathnayaka <
>>>> shameerainfo@gmail.com> wrote:
>>>>
>>>>> Hi Pankaj,
>>>>>
>>>>> If you pass environment variable then you don't want to edit property
>>>>> file. Airavata give priority to system property then properties from
>>>>> airavata-server.properties file. Hence you don't need to edit properties
>>>>> file.
>>>>>
>>>>> ~Shameera.
>>>>>
>>>>> On Wed, Jul 22, 2015 at 9:40 PM Pankaj Saha <psaha4@binghamton.edu>
>>>>> wrote:
>>>>>
>>>>>> Hey Shameera
>>>>>> Can you please explain with an example, I am not able to get what
you
>>>>>> are trying to say about system properties. What I have suggested
here needs
>>>>>> env variables to be passed as parameters while running the containers.
>>>>>> Start up script will set these properties before running the airavata
>>>>>> server.
>>>>>>
>>>>>> Thanks
>>>>>>
>>>>>>
>>>>>> Pankaj
>>>>>> On 22-Jul-2015 9:34 PM, "Shameera Rathnayaka" <shameerainfo@gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>> Hi Pankaj,
>>>>>>>
>>>>>>> did you try parsing those values as system properties when you
start
>>>>>>> docker images? It should work. Then you can add those system
properties
>>>>>>> from startup script instead of manipulating property file.
>>>>>>>
>>>>>>> On Wed, Jul 22, 2015 at 6:15 PM Pankaj Saha <psaha4@binghamton.edu>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> I am planning to add a shell script(startup.sh) along with
>>>>>>>> Dockerfile in the source, so that it make required changes
and then start
>>>>>>>> the airavata server. This will resolve the issues 2,3,4.
>>>>>>>> like:  CMD bash -C './startup.sh';'bash'
>>>>>>>> ​
>>>>>>>>  startup.sh
>>>>>>>> <https://drive.google.com/a/binghamton.edu/file/d/0ByuFJ2KDIjkiaWk4RVZ4cFl6UXM/view?usp=drive_web>
>>>>>>>> ​
>>>>>>>> For JAVA_HOME dependencies, I remember Suresh knows some
changes
>>>>>>>> which can resolve this issue (as he told in previous GSoC
meeting).
>>>>>>>>
>>>>>>>> Thanks
>>>>>>>> Pankaj
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Wed, Jul 22, 2015 at 12:00 PM, Pankaj Saha <
>>>>>>>> psaha4@binghamton.edu> wrote:
>>>>>>>>
>>>>>>>>> adding one more item in the list
>>>>>>>>> 4. Dockerfile should copy the content of airavata server
after
>>>>>>>>> maven build is completed. It will only copy the class
files and executable
>>>>>>>>> files no source code is required in the docker image.
>>>>>>>>> Now for each branch, maven is creating zip folder with
the branch
>>>>>>>>> id like apache-airavata-server-*0.15*-SNAPSHOT. To automate
the
>>>>>>>>> docker image creation we have to provide some common
name, otherwise user
>>>>>>>>> have to modify dockerfile every time for different branches.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Wed, Jul 22, 2015 at 11:47 AM, Pankaj Saha <
>>>>>>>>> psaha4@binghamton.edu> wrote:
>>>>>>>>>
>>>>>>>>>> Hello Devs,
>>>>>>>>>>
>>>>>>>>>> Here are few open items that we need to fix before
we allow
>>>>>>>>>> Dockerfile to be part of  airavata source tree.
>>>>>>>>>>
>>>>>>>>>> 1. airavata-server.sh still has dependency on JAVA_HOME
env
>>>>>>>>>> variable. Which we have to change manually after
creating docker container.
>>>>>>>>>>
>>>>>>>>>> 2. airavata-server.properties file needs to be modified
with host
>>>>>>>>>> address of rabbitmq. Are we planning to pass them
as an env variable while
>>>>>>>>>> running the docker? Then we need to change the properties
file such that it
>>>>>>>>>> can identify the env variable and replace it.
>>>>>>>>>>
>>>>>>>>>> 3. apiserver.server.host=localhost needs to be changed
to the
>>>>>>>>>> apiserver.server.host=container ip. Container ip
will the ip address of the
>>>>>>>>>> running container. Which can be fetched by "wk 'NR==1
{print $1}'
>>>>>>>>>> /etc/hosts" command. We need to plan how we are going
to feed these values
>>>>>>>>>> to the properties file without manual changes.
>>>>>>>>>>
>>>>>>>>>> Thanks
>>>>>>>>>> Pankaj
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>> --
>>>>>>> Shameera Rathnayaka
>>>>>>>
>>>>>> --
>>>>> Shameera Rathnayaka
>>>>>
>>>>
>>>> --
>>> Shameera Rathnayaka
>>>
>>
>> --
> Shameera Rathnayaka
>

Mime
View raw message