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.
