From 975880abdbba376e75f06a5bd6bf0bb7f0a2a885 Mon Sep 17 00:00:00 2001 From: Roel Spilker Date: Mon, 30 Oct 2017 23:25:25 +0100 Subject: use provisioning in docker to enable composition of versions --- docker/gradle/Dockerfile | 22 ++++++++++++---------- docker/gradle/readme.md | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+), 10 deletions(-) create mode 100644 docker/gradle/readme.md (limited to 'docker/gradle') diff --git a/docker/gradle/Dockerfile b/docker/gradle/Dockerfile index 73d5fa1b..6c5cba15 100644 --- a/docker/gradle/Dockerfile +++ b/docker/gradle/Dockerfile @@ -1,19 +1,19 @@ FROM ubuntu:16.04 as downloader -RUN apt-get update && apt-get install wget -y -RUN wget --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/9.0.1+11/jdk-9.0.1_linux-x64_bin.tar.gz -O jdk9_linux-x64_bin.tar.gz -RUN tar -xzf jdk9_linux-x64_bin.tar.gz -C /opt/ +ARG jdk=1.9 +ADD provision/jdk/java-${jdk}.sh provision/jdk/java-${jdk}.sh +RUN provision/jdk/java-${jdk}.sh -RUN wget https://services.gradle.org/distributions/gradle-4.2.1-bin.zip -O gradle.zip -RUN apt-get update && apt-get install unzip -y -RUN mkdir /opt/gradle && unzip -d /opt/gradle gradle.zip +ARG gradle=4.2.1 +ADD provision/gradle/gradle-${gradle}.sh provision/gradle/gradle-${gradle}.sh +RUN provision/gradle/gradle-${gradle}.sh FROM ubuntu:16.04 COPY --from=downloader /opt/gradle/ /opt/gradle/ -COPY --from=downloader /opt/jdk-9.0.1/ /opt/jdk-9.0.1/ +COPY --from=downloader /opt/jdk/ /opt/jdk/ -RUN update-alternatives --install /usr/bin/java java /opt/jdk-9.0.1/bin/java 1000 && update-alternatives --install /usr/bin/javac javac /opt/jdk-9.0.1/bin/javac 1000 && update-alternatives --install /usr/bin/javadoc javadoc /opt/jdk-9.0.1/bin/javadoc 1000 && update-alternatives --install /usr/bin/javap javap /opt/jdk-9.0.1/bin/javap 1000 +RUN update-alternatives --install /usr/bin/java java /opt/jdk/bin/java 1000 && update-alternatives --install /usr/bin/javac javac /opt/jdk/bin/javac 1000 && update-alternatives --install /usr/bin/javadoc javadoc /opt/jdk/bin/javadoc 1000 && update-alternatives --install /usr/bin/javap javap /opt/jdk/bin/javap 1000 WORKDIR workspace @@ -22,8 +22,10 @@ ADD gradle/files/ ./ ARG lombokjar=lombok.jar ADD https://projectlombok.org/downloads/${lombokjar} lombok.jar -ENV JAVA_HOME=/opt/jdk-9.0.1 -ENV GRADLE_HOME=/opt/gradle/gradle-4.2.1 +ARG jdk +ENV JDK_VERSION=${jdk} +ENV JAVA_HOME=/opt/jdk +ENV GRADLE_HOME=/opt/gradle/gradle ENV PATH="${JAVA_HOME}/bin:${GRADLE_HOME}/bin:${PATH}" ENTRYPOINT bash diff --git a/docker/gradle/readme.md b/docker/gradle/readme.md new file mode 100644 index 00000000..efe4f237 --- /dev/null +++ b/docker/gradle/readme.md @@ -0,0 +1,33 @@ +## Configuration + +[_(general configuration and options)_](../readme.md) + +### `ARG gradle=4.2.1` + +The gradle version to be used. Supported values: + +- `4.2.1` (default) + +## Example build commands: + +(To be executed from the `/docker` directory) + +``` +docker build -t lombok-gradle-jdk9 -f gradle/Dockerfile . + +docker build -t lombok-gradle-jdk9 --build-arg lombokjar=lombok-1.16.18.jar -f gradle/Dockerfile . +``` + +## Example run commands: + +``` +docker run -it lombok-gradle-jdk9 + +docker run --rm -it -v //dist/lombok.jar:/workspace/lombok.jar lombok-gradle-jdk9 +``` + +## Example container commands: + +``` +gradle assemble +``` -- cgit