I have use sbt docker because we use sbt instead of maven to build java
code. I think we can use this[1] for maven.

[1]https://github.com/rhuss/docker-maven-plugin

I think its worth exploring this since we already have a maven build.

Lahiru

On Mon, Jul 6, 2015 at 10:39 AM, Suresh Marru <[email protected]> wrote:

> Lahiru,
>
> Did you come across any maven plugins like assembly ones so we can bundle
> all docker things with the main build? There seems to be few github
> projects but could not weigh in which one is good.
>
> Suresh
>
>
> On Mon, Jul 6, 2015 at 1:26 PM Lahiru Ginnaliya Gamathige <
> [email protected]> wrote:
>
>> If we use docker for deployment purpose there is no requirement for
>> bundling source code in to docker image. We usually bundle minimum amount
>> of data (everything required in runtime) but nothing other than that.
>> During development we use a script which build the docker image for us
>> using exiting source in our local file system. Once we do a release we have
>> docker images with proper naming which will not touch.
>>
>> Shameera,
>>
>> I am not sure why we need to install java or maven without using existing
>> docker image provided by Oracle.
>>
>> Lahiru
>>
>> On Mon, Jul 6, 2015 at 9:52 AM, Suresh Marru <[email protected]> wrote:
>>
>>> Hi Pankaj,
>>>
>>> Thinking naively, I am considering docker images same as maven
>>> artifacts. Users will consume the published images. We will need to publish
>>> released docker images and also nightly builds.
>>>
>>> From developers perspective, I am guessing they will again work similar
>>> to maven. We do not want to push to a docker hub, but create and use the
>>> image locally.
>>>
>>> Let me defer to Lahiru to update us how docker is used in real-world by
>>> developers. I am guessing as long as we can build docker images with the
>>> maven build (through ant commands probably), it should probably help both
>>> the cases.
>>>
>>> Suresh
>>>
>>>
>>> On Mon, Jul 6, 2015 at 12:25 PM Pankaj Saha <[email protected]>
>>> wrote:
>>>
>>>> Hi Suresh
>>>>
>>>> Our initial plan was to make docker for the airavata developers so that
>>>> the initial hurdle of environment set up can be reduced.
>>>> If we don't include the source code and only keep the executable
>>>> binaries then how can we fulfill that goal?
>>>> do we need two set of docker images 1. with source code (dev edition)
>>>>  and 2. without source code (end user edition) ?
>>>> please suggest.
>>>>
>>>> Thanks
>>>> Pankaj
>>>>
>>>>
>>>> On Mon, Jul 6, 2015 at 12:10 PM, Pankaj Saha <[email protected]>
>>>> wrote:
>>>>
>>>>> Hey Shameera,
>>>>> what about the PATH variable? If you see my dockerfile I have
>>>>> commented the ENV for the JAVA_HOME and PATH. It did not work for me.
>>>>> Lahiru suggested to use existing jdk8+maven base image which is better
>>>>> idea , what do you think?
>>>>>
>>>>> On Mon, Jul 6, 2015 at 12:03 PM, Shameera Rathnayaka <
>>>>> [email protected]> wrote:
>>>>>
>>>>>> Hi Pankaj,
>>>>>>
>>>>>> you can use following steps on your Dockerfile to install java. After
>>>>>> that java will be available anywhere and you don't need to set PATH
>>>>>> variable , But you need to set JAVA_HOME variable which is used by 
>>>>>> airavata
>>>>>> start script.
>>>>>>
>>>>>>
>>>>>> # Install prerequisites
>>>>>> RUN apt-get update
>>>>>> RUN apt-get install -y software-properties-common
>>>>>>
>>>>>> # Install java8
>>>>>> RUN add-apt-repository -y ppa:webupd8team/java
>>>>>> RUN apt-get update
>>>>>> RUN echo oracle-java8-installer shared/accepted-oracle-license-v1-1
>>>>>> select true | sudo /usr/bin/debconf-set-selections
>>>>>> RUN apt-get install -y oracle-java8-installer
>>>>>>
>>>>>> # set JAVA_HOME
>>>>>> ENV JAVA_HOME /usr/lib/jvm/java-8-oracle
>>>>>>
>>>>>>
>>>>>> Regards,
>>>>>> Shameera.
>>>>>>
>>>>>> On Mon, Jul 6, 2015 at 11:56 AM Pankaj Saha <[email protected]>
>>>>>> wrote:
>>>>>>
>>>>>>> Hi Lahiru,
>>>>>>>
>>>>>>> 1. So you suggest to use the "java8 with maven" as the base image.
>>>>>>> dockerfile/java:oracle-java8 is not based on ubuntu image and also
>>>>>>> its not official image from oracle, can we use still use that?
>>>>>>>
>>>>>>> 2. Do you suggest to put only the executables for airavata inside
>>>>>>> the docker image? Does that mean docker file will copy the local host
>>>>>>> machine's airavata executable files to the docker image through ADD
>>>>>>> directive?
>>>>>>> So I will build the airavata source code locally through maven and
>>>>>>> then put that inside the container image.
>>>>>>>
>>>>>>> 3. One thing that I could not able to do was changing the properties
>>>>>>> values for different port and server ips when the containers starts. I 
>>>>>>> was
>>>>>>> trying to run a startup shell script which can do the required changes 
>>>>>>> and
>>>>>>> then kick start the airavat-server.sh file.
>>>>>>> problem was  airavata-server.properties need apiserver.server.host
>>>>>>> = current running containers ip address. Can you suggest some better 
>>>>>>> way to
>>>>>>> achieve this through shell script.
>>>>>>>
>>>>>>> Thanks
>>>>>>> Pankaj
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Mon, Jul 6, 2015 at 11:30 AM, Lahiru Ginnaliya Gamathige <
>>>>>>> [email protected]> wrote:
>>>>>>>
>>>>>>>> Hi Pankaj,
>>>>>>>>
>>>>>>>> I had a quick look. I think you can replace all the code to install
>>>>>>>> java and maven if you use this image [1] or at least java-8 image.
>>>>>>>>
>>>>>>>> I think its not necessary to build airavata inside the dockerfile,
>>>>>>>> you can just assume its built in host machine and you just have to put
>>>>>>>> required executables in to the docker image.
>>>>>>>> When you create he image maven and source code it not necessary at
>>>>>>>> all. Docker image should only contain required binaries, source code
>>>>>>>> doesn't have to in the image.
>>>>>>>>
>>>>>>>> [1]
>>>>>>>> https://registry.hub.docker.com/u/jamesdbloom/docker-java8-maven/dockerfile/
>>>>>>>>
>>>>>>>> On Mon, Jul 6, 2015 at 8:13 AM, Pankaj Saha <[email protected]>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> I am so sorry , I have no intention to hide any docker code.I am
>>>>>>>>> attaching the docker files here.I have never done git check in and 
>>>>>>>>> trying
>>>>>>>>> to upload files and its not working. I am trying to understand the 
>>>>>>>>> git pull
>>>>>>>>> request/setting up git directory etc.
>>>>>>>>>
>>>>>>>>> My apology if I unnecessary delayed it.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Mon, Jul 6, 2015 at 10:51 AM, Suresh Marru <[email protected]>
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>> Hi Pankaj,
>>>>>>>>>>
>>>>>>>>>> Open source software can never be final. Once the software is
>>>>>>>>>> final, the community is dead, because there is nothing for anyone to 
>>>>>>>>>> do. An
>>>>>>>>>> important aspect for all the GSoC students to embrace is, these are 
>>>>>>>>>> not
>>>>>>>>>> academic projects where you submit the final code. You are supposed 
>>>>>>>>>> to
>>>>>>>>>> commit every few hours of code, you need to do the development in 
>>>>>>>>>> open. We
>>>>>>>>>> have been lenient on this so far, but you have been holding off the 
>>>>>>>>>> docker
>>>>>>>>>> work little too long. Please do commit the docker files in as in 
>>>>>>>>>> condition.
>>>>>>>>>> Thats the only way you can engage others, otherwise you will loose 
>>>>>>>>>> everyone
>>>>>>>>>> interest.
>>>>>>>>>>
>>>>>>>>>> Suresh
>>>>>>>>>>
>>>>>>>>>> On Mon, Jul 6, 2015 at 10:42 AM, Lahiru Ginnaliya Gamathige <
>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>
>>>>>>>>>>> Not sure what is the big deal here, Why don't you create a pull
>>>>>>>>>>> request and every one can review it. It doesn't have to be 
>>>>>>>>>>> finalized at
>>>>>>>>>>> all. People will comment and you can follow the comments and after 
>>>>>>>>>>> multiple
>>>>>>>>>>> reviews we can  move ti to the the code base.
>>>>>>>>>>>
>>>>>>>>>>> I propose to create a folder struction like this and put the
>>>>>>>>>>> docker files.
>>>>>>>>>>>
>>>>>>>>>>> airavata/deploy/thrift, airavata/deploy/rabbitmq,
>>>>>>>>>>> airavata/deploy/zookeeper. Create a directory for every image you 
>>>>>>>>>>> build
>>>>>>>>>>> with proper naming and add the Dockerfile and other scripts if 
>>>>>>>>>>> there's any.
>>>>>>>>>>>
>>>>>>>>>>> Lahiru
>>>>>>>>>>>
>>>>>>>>>>> On Mon, Jul 6, 2015 at 7:03 AM, Pankaj Saha <
>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> This docker file is not final yet as we have to automate the
>>>>>>>>>>>> environment variable to replace the properties file.
>>>>>>>>>>>> I believe in a hangout session we can walk through and fix this.
>>>>>>>>>>>>
>>>>>>>>>>>> On Mon, Jul 6, 2015 at 9:58 AM, Shameera Rathnayaka <
>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> Hi Pankaj,
>>>>>>>>>>>>>
>>>>>>>>>>>>> Let't do this via Apache way, upload these files to publicly
>>>>>>>>>>>>> accessible place (as i mentioned in my previous reply) then 
>>>>>>>>>>>>> invite everyone
>>>>>>>>>>>>> to review it.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Regards,
>>>>>>>>>>>>> Shameera.
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Mon, Jul 6, 2015 at 9:44 AM Pankaj Saha <
>>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> Hi Shameera,
>>>>>>>>>>>>>> Please find the attached Dockerfile for Airavata Server.
>>>>>>>>>>>>>> Please suggest changes.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> On Thu, Jul 2, 2015 at 5:50 PM, Shameera Rathnayaka <
>>>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Hi Pankaj,
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Yes please share your works with community. Do you have
>>>>>>>>>>>>>>> specific location to commit your works? If not you can use this 
>>>>>>>>>>>>>>> location
>>>>>>>>>>>>>>> https://github.com/apache/airavata-sandbox.  Let's try to
>>>>>>>>>>>>>>>  track the changes with VCS.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> @Suresh do we have specific location for this time gsoc
>>>>>>>>>>>>>>> students?
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>>>> Shameera.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> On Thu, Jul 2, 2015 at 5:24 PM Pankaj Saha <
>>>>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Hi Shameera
>>>>>>>>>>>>>>>> Yes we can see the containers ip they way you suggested.
>>>>>>>>>>>>>>>> What I mentioned is another way in case you are already inside 
>>>>>>>>>>>>>>>> the
>>>>>>>>>>>>>>>> container.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Regarding java path variable yes we can do that with ENV in
>>>>>>>>>>>>>>>> docker file. It was throwing some errors so i just commented 
>>>>>>>>>>>>>>>> that in the
>>>>>>>>>>>>>>>> docker file.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> I will send you the docker file in another email then we
>>>>>>>>>>>>>>>> can go through together  to improve it.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> I was trying mesos today and didnt have time to fix that.
>>>>>>>>>>>>>>>> We can do it later as we are already running late for the mesos
>>>>>>>>>>>>>>>> implementation.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Thanks
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Pankaj
>>>>>>>>>>>>>>>>  On 02-Jul-2015 5:12 PM, "Shameera Rathnayaka" <
>>>>>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Hi Pankaj,
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> See my comments inline.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> docker attach server
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> awk 'NR==1 {print $1}' /etc/hosts    ---- note the ip
>>>>>>>>>>>>>>>>>>> address of the running container
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> can't we use "docker inspect --format '{{
>>>>>>>>>>>>>>>>> .NetworkSettings.IPAddress }}' server " to get airavata 
>>>>>>>>>>>>>>>>> server docker
>>>>>>>>>>>>>>>>> container ip ?
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> pico airavata-server.properties
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> Replaces the below text as suggested below
>>>>>>>>>>>>>>>>>> apiserver.server.host= *<current containers ip address>*
>>>>>>>>>>>>>>>>>> default.registry.gateway=*default*
>>>>>>>>>>>>>>>>>> rabbitmq.broker.url=amqp://*<rabbit MQ's ip address>*
>>>>>>>>>>>>>>>>>> :5672
>>>>>>>>>>>>>>>>>> save changes.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> pico /etc/bash.bashrc
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> add below lines at the end
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> #JAVA_HOME
>>>>>>>>>>>>>>>>>>> JAVA_HOME=/opt/jdk/jdk1.8.0_05
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> You can improve you docker file to add this variables
>>>>>>>>>>>>>>>>> using ENV command.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> export JAVA_HOME
>>>>>>>>>>>>>>>>>>> PATH=$JAVA_HOME/bin:$PATH
>>>>>>>>>>>>>>>>>>> export PATH
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> save changes.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> How you install java 8?, There is a way to install java on
>>>>>>>>>>>>>>>>> docker which automatically available in PATH variable. You 
>>>>>>>>>>>>>>>>> don't have to
>>>>>>>>>>>>>>>>> set it here. It is good if you can show us the Dockerfiles 
>>>>>>>>>>>>>>>>> then we can
>>>>>>>>>>>>>>>>> review those files. is it available online ?
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>>>>>> Shameera.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>
>>>>
>>

Reply via email to