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] <javascript:>> 
> 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] <javascript:>.
>> 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