Thank you Varsha for your reply. That's what I came to realize as well. I 
will look at building my own image using docker gocd image as the base.



On Sunday, December 10, 2017 at 10:46:48 PM UTC-5, Varsha Varadarajan wrote:
>
> Hello,
>
> For the gocd agent to run, only the JRE is required and that is why the 
> docker images only had the JRE installed. Since it is up to the user to 
> build anything they want, we only provided a minimal set of packages that 
> ensured that the gocd-agent ran. Usually, people use this as a base image.  
> If you want additional packages installed based on what you're using the 
> agent for, you could always use our docker gocd image as a base image and 
> add relevant packages on top of it. Here's a small example - 
> https://github.com/varshavaradarajan/deploy/blob/master/Dockerfile. 
>
> Thanks,
> Varsha
>
> On Saturday, 9 December 2017 00:39:51 UTC+5:30, Aver wrote:
>>
>> Hi Aravind,
>>
>> Thanks for your reply and taking the time to check it out. After reading 
>> your reply I was able to find out the root cause. There are 2 issues.
>>
>> First, the docker image for go-cd agent of centos7 does not seem to have 
>> the "which" command installed. The gradlew is basically a shell script 
>> provided by Gradle when using Gradle wrapper. That script uses "which java" 
>> command to determine java and since that was failing it was complaining 
>> about the JAVA_HOME env variable. After I manually installed it inside the 
>> container (yum install which), I was able to run Gradle commands in that 
>> agent.
>>
>> However, now that I'm able to run Gradle, my build was failing to compile 
>> Java code. I was getting this error:
>>
>> :example:compileJava FAILED
>> FAILURE: Build failed with an exception.
>> * What went wrong:
>> Execution failed for task ':example:compileJava'.
>> > Could not find tools.jar
>>
>> I then went inside the go-cd agent container again. I installed openjdk8 
>> again using command "yum install java-1.8.0-openjdk-devel.x86_64". Now, 
>> Gradle was able to compile my java code.
>>
>> So, I think the CentOS package for go-cd agent is missing these 2 items, 
>> which I believe most people will need:
>>
>> - Install which command (Why is it missing in the first place? Is it not 
>> already part of the base centos image)?
>> - Install development/JDK of Java; not just the runtime
>>
>> Does that sound right or am I missing something?
>>
>>
>>
>> On Thursday, December 7, 2017 at 7:48:50 PM UTC-5, Aravind SV wrote:
>>>
>>> Do you know if the "gradlew" task is somehow changing the PATH before it 
>>> executes gradle?
>>>
>>> In the docker gocd-agent, I can see that JAVA_HOME is not set, but java 
>>> is available in /usr/bin. So, that shouldn't be a problem to run gradle.
>>>
>>> On Thu, Dec 7, 2017 at 3:15 PM, Aver <[email protected]> wrote:
>>>
>>>> I've been trying to debug this issue and noticed some interesting 
>>>> behaviour.
>>>>
>>>> I've setup a pipeline with with 1 stage and following tasks:
>>>>
>>>> - pwd
>>>> - echo $JAVA_HOME
>>>> - java -version
>>>> - sh gradlew clean build
>>>>
>>>> The last task is the one that uses my gradle script to build the codes 
>>>> in my repository.
>>>>
>>>> My initial configuration of the go-cd agent container looks like this 
>>>> (in a docker compose file):
>>>>
>>>> version: '3.4'
>>>>
>>>>
>>>> services:
>>>>
>>>>   gocd-agent:
>>>>
>>>>     image: gocd/gocd-agent-centos-7:v17.11.0
>>>>
>>>>     restart: always
>>>>
>>>>     environment:
>>>>
>>>>       - GO_SERVER_URL=https://gocd-server:8154/go
>>>>
>>>>     volumes:
>>>>
>>>>       - /opt/gocd/data:/godata
>>>>
>>>>       - /opt/gocd/home:/home/go
>>>>
>>>>
>>>> With this configuration the pipeline fails showing the JAVA_HOME error 
>>>> I posted earlier. On the host machine where the go-cd agent container is 
>>>> running, I have IBM JDK 8 installed. This is what I'd like to use with my 
>>>> pipeline.
>>>>
>>>> So, if I change the docker compose like this and restart the agent with 
>>>> this configuration, the pipeline is successfully completed. But, I can't 
>>>> tell if it's really using IBM JDK or not. The 3rd task (java -version) 
>>>> shows openjdk8, which is bundled with the container of the agent.
>>>>
>>>> version: '3.4'
>>>>
>>>>
>>>> services:
>>>>
>>>>   gocd-agent:
>>>>
>>>>     image: gocd/gocd-agent-centos-7:v17.11.0
>>>>
>>>>     restart: always
>>>>
>>>>     environment:
>>>>
>>>>       - GO_SERVER_URL=https://gocd-server:8154/go
>>>>
>>>>       - JAVA_HOME=/opt/ibm/java-x86_64-80
>>>>
>>>>     volumes:
>>>>
>>>>       - /opt/gocd/data:/godata
>>>>
>>>>       - /opt/gocd/home:/home/go
>>>>
>>>>       - /opt/ibm/java-x86_64-80:/opt/ibm/java-x86_64-80
>>>>
>>>> I tried to use "GO_JAVA_HOME" environment variable in my docker compose 
>>>> instead of "JAVA_HOME" (keeping same value). But that causes the pipeline 
>>>> to fail with the same error about "JAVA_HOME" not being set, even though 
>>>> the 3rd task (java -version) runs successfully and showing openjdk8.
>>>>
>>>> I'm not sure why my gradle script fails to run complaining about 
>>>> JAVA_HOME not being defined even though "java -version" command runs 
>>>> successfully. If I define JAVA_HOME in my docker compose file mounted to 
>>>> my 
>>>> IBM JDK installation on the host machine, the pipeline runs. But, is it 
>>>> truly using IBM JDK or Open JDK? How can I be sure?
>>>>
>>>>
>>>>
>>>> On Thursday, December 7, 2017 at 3:20:42 PM UTC-5, Aver wrote:
>>>>>
>>>>> Hi,
>>>>>
>>>>> I want to use dockerized go-cd server and agent. I have them both 
>>>>> running on 2 separate hosts and the server can see the agent as well as 
>>>>> run 
>>>>> a pipeline successfully. I have some requirements that I'm not sure how 
>>>>> to 
>>>>> fit into this setup.
>>>>>
>>>>> Dockerized go-cd agent comes with openjdk8 pre-installed. I've setup a 
>>>>> very simple pipeline that uses an internal git repository as it's 
>>>>> material. 
>>>>> The repository has a gradle script as well as gradle wrapper. In my 
>>>>> pipeline, when setup a job to execute my gradle build script using the 
>>>>> wrapper. But my pipeline fails with following error message:
>>>>>
>>>>> [go] Task: sh gradlew clean buildtook: 0.109sexited: 1
>>>>> ERROR: JAVA_HOME is not set and no 'java' command could be found in 
>>>>> your PATH.
>>>>> Please set the JAVA_HOME variable in your environment to match the
>>>>> location of your Java installation.
>>>>> [go] Task status: failed, took: 0.109s, exited: 1
>>>>>
>>>>>
>>>>> I read through the entire page in Docker hub for the dockerized go-cd 
>>>>> agent but didn't see anything that I might have missed. Has anyone used 
>>>>> dockerized go-cd agent for running java?
>>>>>
>>>>> If I step into the container running go-cd agent, I can see java is 
>>>>> available by running "java -version" but not sure why my pipeline is 
>>>>> failing.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> -- 
>>>> You received this message because you are subscribed to the Google 
>>>> Groups "go-cd" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>> an email to [email protected].
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>>>

-- 
You received this message because you are subscribed to the Google Groups 
"go-cd" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to