I am getting this strange error at the end of the process of creating a docker image from a Dockerfile
:
JavaScript
x
/bin/sh: 1: gradle: not found
INFO[0003] The command [/bin/sh -c gradle test jar] returned a non-zero code: 127
The relevant part of the Dockerfile
:
JavaScript
FROM debian:jessie
[ ]
RUN curl -L https://services.gradle.org/distributions/gradle-2.4-bin.zip -o gradle-2.4-bin.zip
RUN apt-get install -y unzip
RUN unzip gradle-2.4-bin.zip
RUN echo 'export GRADLE_HOME=/app/gradle-2.4' >> $HOME/.bashrc
RUN echo 'export PATH=$PATH:$GRADLE_HOME/bin' >> $HOME/.bashrc
RUN /bin/bash -c "source $HOME/.bashrc"
RUN gradle test jar
[ ]
The command I am using is: docker build -t java_i .
The strange thing is that if:
- I run a container from the previous image commenting out
RUN gradle test jar
(command:docker run -d -p 9093:8080 -p 9094:8081 --name java_c -i -t java_i
), - then I log into that container (command:
docker exec -it java_c bash
), - then I manually check the gradle environment variables finding them,
- then I manually run that commented out command from within the running container (
gradle test jar
):
I eventually get the expected output (the compiled java code in the build
folder).
I am using Docker version 1.6.2
Advertisement
Answer
I solved the problem using the ENV
docker instructions (link to the documentation).
JavaScript
ENV GRADLE_HOME=/app/gradle-2.4
ENV PATH=$PATH:$GRADLE_HOME/bin