Thanks Shameera. Now the open issue is the dependency on JAVA_HOME, if we
can remove that then we are done with server docker.

Hi Suresh,
I remember in last GSoC meeting you said you know how to remove the
dependencies on JAVA_HOME. Can you please let us know the way out then we
can give a try on local builds.

Thanks
Pankaj


On Thu, Jul 23, 2015 at 2:10 PM, Shameera Rathnayaka <[email protected]
> wrote:

> Hi Pankaj,
>
> Ok then let's continue with your approach.
>
> Thanks,
> Shameera.
>
> On Thu, Jul 23, 2015 at 1:15 PM Pankaj Saha <[email protected]> wrote:
>
>> 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 <
>> [email protected]> wrote:
>>
>>> Hi Pankaj,
>>>
>>>
>>> On Thu, Jul 23, 2015 at 11:36 AM Pankaj Saha <[email protected]>
>>> 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 <
>>>> [email protected]> 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 <[email protected]>
>>>>> 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 <
>>>>>> [email protected]> 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 <[email protected]>
>>>>>>> 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" <
>>>>>>>> [email protected]> 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 <[email protected]>
>>>>>>>>> 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 <
>>>>>>>>>> [email protected]> 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 <
>>>>>>>>>>> [email protected]> 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
>>>
>>
>> --
> Shameera Rathnayaka
>

Reply via email to