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.
