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 >
