diff --git a/docker/spring-cloud-contract-docker/Dockerfile b/docker/spring-cloud-contract-docker/Dockerfile index 3935e3f246..443312c3b8 100644 --- a/docker/spring-cloud-contract-docker/Dockerfile +++ b/docker/spring-cloud-contract-docker/Dockerfile @@ -1,7 +1,25 @@ -FROM anapsix/alpine-java:8_jdk +FROM ubuntu:18.10 + +ARG SDKMAN_JAVA_INSTALLATION=8.0.181-zulu MAINTAINER Marcin Grzejszczak +RUN apt-get update && apt-get install -y curl \ + unzip \ + zip \ + && apt-get clean + +# Install sdkman and java +RUN curl -s get.sdkman.io | bash +COPY sdkman.config /.sdkman/etc/config +COPY sdkman/ /usr/local/bin/ +RUN /bin/bash -c "chmod +x /usr/local/bin/sdkman-exec.sh && chmod +x /usr/local/bin/sdkman-wrapper.sh && chmod +x /root/.sdkman/bin/sdkman-init.sh" +RUN /bin/bash -c "source /root/.sdkman/bin/sdkman-init.sh" +RUN sdkman-wrapper.sh install java "${SDKMAN_JAVA_INSTALLATION}" +ENV JAVA_HOME /root/.sdkman/candidates/java/current/ +ENV PATH "${PATH}:${JAVA_HOME}/bin" + +# Spring Cloud Contract COPY project /spring-cloud-contract/ WORKDIR /spring-cloud-contract/ # Let's copy the downloaded deps to .m2 and the gradle cache diff --git a/docker/spring-cloud-contract-docker/get_dependencies.sh b/docker/spring-cloud-contract-docker/get_dependencies.sh index 520e770abb..b897eeaf0d 100755 --- a/docker/spring-cloud-contract-docker/get_dependencies.sh +++ b/docker/spring-cloud-contract-docker/get_dependencies.sh @@ -2,7 +2,7 @@ set -e -WRAPPER_VERSION="4.4.1" +WRAPPER_VERSION="4.10.2" GRADLE_BIN_DIR="gradle-${WRAPPER_VERSION}-bin" GRADLE_WRAPPER_DIR="${HOME}/.gradle/wrapper/dists/${GRADLE_BIN_DIR}" CURRENT_DIR="$( pwd )" diff --git a/docker/spring-cloud-contract-docker/project/gradle/wrapper/gradle-wrapper.jar b/docker/spring-cloud-contract-docker/project/gradle/wrapper/gradle-wrapper.jar index 99340b4ad1..29953ea141 100644 Binary files a/docker/spring-cloud-contract-docker/project/gradle/wrapper/gradle-wrapper.jar and b/docker/spring-cloud-contract-docker/project/gradle/wrapper/gradle-wrapper.jar differ diff --git a/docker/spring-cloud-contract-docker/project/gradle/wrapper/gradle-wrapper.properties b/docker/spring-cloud-contract-docker/project/gradle/wrapper/gradle-wrapper.properties index 2c2bbe5f9a..e0b3fb8d70 100644 --- a/docker/spring-cloud-contract-docker/project/gradle/wrapper/gradle-wrapper.properties +++ b/docker/spring-cloud-contract-docker/project/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.4.1-bin.zip diff --git a/docker/spring-cloud-contract-docker/sdkman.config b/docker/spring-cloud-contract-docker/sdkman.config new file mode 100644 index 0000000000..b6578f6f4b --- /dev/null +++ b/docker/spring-cloud-contract-docker/sdkman.config @@ -0,0 +1,8 @@ +# make gvm non-interactive, great for CI environments +sdkman_auto_answer=true + +# don't prompt user to selfupdate on new shell +sdkman_suggestive_selfupdate=false + +# don't perform automatic selfupdates +sdkman_auto_selfupdate=false \ No newline at end of file diff --git a/docker/spring-cloud-contract-docker/sdkman/sdkman-exec.sh b/docker/spring-cloud-contract-docker/sdkman/sdkman-exec.sh new file mode 100755 index 0000000000..e8fe81a953 --- /dev/null +++ b/docker/spring-cloud-contract-docker/sdkman/sdkman-exec.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +# A quick wrapper to source the gvm env and run a command +# This is used to run sdkman in Dockerfile RUN commands +# since the RUN commands does not use interactive shells + +[[ -s "/root/.sdkman/bin/sdkman-init.sh" ]] && source "/root/.sdkman/bin/sdkman-init.sh" && exec "$@" \ No newline at end of file diff --git a/docker/spring-cloud-contract-docker/sdkman/sdkman-wrapper.sh b/docker/spring-cloud-contract-docker/sdkman/sdkman-wrapper.sh new file mode 100755 index 0000000000..c7ff0c93f2 --- /dev/null +++ b/docker/spring-cloud-contract-docker/sdkman/sdkman-wrapper.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +# A quick wrapper to source the gvm env and run it +# This is used to run gvm in Dockerfile RUN commands +# since the RUN commands does not use interactive shells + +[[ -s "/root/.sdkman/bin/sdkman-init.sh" ]] && source "/root/.sdkman/bin/sdkman-init.sh" && sdk $@ \ No newline at end of file diff --git a/docker/spring-cloud-contract-stub-runner-docker/Dockerfile b/docker/spring-cloud-contract-stub-runner-docker/Dockerfile index 607ecd5cff..193c7572ba 100644 --- a/docker/spring-cloud-contract-stub-runner-docker/Dockerfile +++ b/docker/spring-cloud-contract-stub-runner-docker/Dockerfile @@ -1,9 +1,26 @@ -FROM anapsix/alpine-java:8_jdk +FROM ubuntu:18.10 + +ARG SDKMAN_JAVA_INSTALLATION=8.0.181-zulu MAINTAINER Marcin Grzejszczak -ENV SERVER_PORT 8083 +RUN apt-get update && apt-get install -y curl \ + unzip \ + zip \ + && apt-get clean +# Install sdkman and java +RUN curl -s get.sdkman.io | bash +COPY sdkman.config /.sdkman/etc/config +COPY sdkman/ /usr/local/bin/ +RUN /bin/bash -c "chmod +x /usr/local/bin/sdkman-exec.sh && chmod +x /usr/local/bin/sdkman-wrapper.sh && chmod +x /root/.sdkman/bin/sdkman-init.sh" +RUN /bin/bash -c "source /root/.sdkman/bin/sdkman-init.sh" +RUN sdkman-wrapper.sh install java "${SDKMAN_JAVA_INSTALLATION}" +ENV JAVA_HOME /root/.sdkman/candidates/java/current/ +ENV PATH "${PATH}:${JAVA_HOME}/bin" + +# Spring Cloud Contract +ENV SERVER_PORT 8083 VOLUME /tmp ADD target/libs/stub-runner-boot.jar stub-runner-boot.jar ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/stub-runner-boot.jar"] diff --git a/docker/spring-cloud-contract-stub-runner-docker/sdkman.config b/docker/spring-cloud-contract-stub-runner-docker/sdkman.config new file mode 100644 index 0000000000..b6578f6f4b --- /dev/null +++ b/docker/spring-cloud-contract-stub-runner-docker/sdkman.config @@ -0,0 +1,8 @@ +# make gvm non-interactive, great for CI environments +sdkman_auto_answer=true + +# don't prompt user to selfupdate on new shell +sdkman_suggestive_selfupdate=false + +# don't perform automatic selfupdates +sdkman_auto_selfupdate=false \ No newline at end of file diff --git a/docker/spring-cloud-contract-stub-runner-docker/sdkman/sdkman-exec.sh b/docker/spring-cloud-contract-stub-runner-docker/sdkman/sdkman-exec.sh new file mode 100755 index 0000000000..e8fe81a953 --- /dev/null +++ b/docker/spring-cloud-contract-stub-runner-docker/sdkman/sdkman-exec.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +# A quick wrapper to source the gvm env and run a command +# This is used to run sdkman in Dockerfile RUN commands +# since the RUN commands does not use interactive shells + +[[ -s "/root/.sdkman/bin/sdkman-init.sh" ]] && source "/root/.sdkman/bin/sdkman-init.sh" && exec "$@" \ No newline at end of file diff --git a/docker/spring-cloud-contract-stub-runner-docker/sdkman/sdkman-wrapper.sh b/docker/spring-cloud-contract-stub-runner-docker/sdkman/sdkman-wrapper.sh new file mode 100755 index 0000000000..c7ff0c93f2 --- /dev/null +++ b/docker/spring-cloud-contract-stub-runner-docker/sdkman/sdkman-wrapper.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +# A quick wrapper to source the gvm env and run it +# This is used to run gvm in Dockerfile RUN commands +# since the RUN commands does not use interactive shells + +[[ -s "/root/.sdkman/bin/sdkman-init.sh" ]] && source "/root/.sdkman/bin/sdkman-init.sh" && sdk $@ \ No newline at end of file