diff --git a/docker/spring-cloud-contract-docker/Dockerfile b/docker/spring-cloud-contract-docker/Dockerfile index 35193889fe..45784aedbb 100644 --- a/docker/spring-cloud-contract-docker/Dockerfile +++ b/docker/spring-cloud-contract-docker/Dockerfile @@ -1,30 +1,37 @@ FROM ubuntu:20.04 -ARG SDKMAN_JAVA_INSTALLATION=8.0.275.hs-adpt +ARG SDKMAN_JAVA_INSTALLATION=8.0.292.hs-adpt -LABEL Author Marcin Grzejszczak +LABEL Author="Marcin Grzejszczak " +LABEL Author="Bastian Doetsch " RUN apt-get update && apt-get install -y curl \ unzip \ zip \ && apt-get clean +RUN useradd -u1000 -m scc + # Install sdkman and java -RUN curl -s https://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/ +RUN chmod +x /usr/local/bin/sdkman-wrapper.sh + +USER scc +RUN curl -s https://get.sdkman.io/ | bash +COPY --chown=scc sdkman.config /home/scc/.sdkman/etc/config +RUN bash -c "source /home/scc/.sdkman/bin/sdkman-init.sh" +RUN bash -c "sdkman-wrapper.sh install java ${SDKMAN_JAVA_INSTALLATION}" +ENV JAVA_HOME /home/scc/.sdkman/candidates/java/current/ ENV PATH "${PATH}:${JAVA_HOME}/bin" # Spring Cloud Contract -COPY project /spring-cloud-contract/ -WORKDIR /spring-cloud-contract/ +COPY --chown=scc project /home/scc/spring-cloud-contract/ +WORKDIR /home/scc/spring-cloud-contract/ + # Let's copy the downloaded deps to .m2 and the gradle cache -COPY target/maven_dependencies /root/.m2/repository/ -COPY target/gradle_dependencies /root/.gradle/ +COPY --chown=scc target/maven_dependencies /home/scc/.m2/repository/ +COPY --chown=scc target/gradle_dependencies /home/scc/.gradle/ + # Let's download gradle wrapper if for some reason it hasn't been downloaded RUN ./gradlew clean resolveDependencies build --stacktrace -x copyOutput || echo "Expected to fail" CMD ["./build.sh"] diff --git a/docker/spring-cloud-contract-docker/pom.xml b/docker/spring-cloud-contract-docker/pom.xml index ab0136558f..671e0dd978 100644 --- a/docker/spring-cloud-contract-docker/pom.xml +++ b/docker/spring-cloud-contract-docker/pom.xml @@ -6,7 +6,7 @@ 1.0.8.RELEASE 4.2.5 - 8.0.275.hs-adpt + 8.0.292.hs-adpt diff --git a/docker/spring-cloud-contract-docker/sdkman/sdkman-exec.sh b/docker/spring-cloud-contract-docker/sdkman/sdkman-exec.sh deleted file mode 100755 index e8fe81a953..0000000000 --- a/docker/spring-cloud-contract-docker/sdkman/sdkman-exec.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/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 index c7ff0c93f2..673ffaaf78 100755 --- a/docker/spring-cloud-contract-docker/sdkman/sdkman-wrapper.sh +++ b/docker/spring-cloud-contract-docker/sdkman/sdkman-wrapper.sh @@ -4,4 +4,4 @@ # 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 +[[ -s "/home/scc/.sdkman/bin/sdkman-init.sh" ]] && source "/home/scc/.sdkman/bin/sdkman-init.sh" && sdk $@ diff --git a/docker/spring-cloud-contract-stub-runner-docker/Dockerfile b/docker/spring-cloud-contract-stub-runner-docker/Dockerfile index b173677672..2bbbefd2b8 100644 --- a/docker/spring-cloud-contract-stub-runner-docker/Dockerfile +++ b/docker/spring-cloud-contract-stub-runner-docker/Dockerfile @@ -1,32 +1,39 @@ FROM ubuntu:20.04 -ARG SDKMAN_JAVA_INSTALLATION=8.0.275.hs-adpt +ARG SDKMAN_JAVA_INSTALLATION=8.0.292.hs-adpt -MAINTAINER Marcin Grzejszczak +LABEL Author="Marcin Grzejszczak " +LABEL Author="Bastian Doetsch " RUN apt-get update && apt-get install -y curl \ unzip \ zip \ && apt-get clean +RUN useradd -u1000 -m scc + # Install sdkman and java -RUN curl -s https://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/ +RUN chmod +x /usr/local/bin/sdkman-wrapper.sh + +USER scc +WORKDIR /home/scc + +RUN curl -s https://get.sdkman.io/ | bash +COPY --chown=scc sdkman.config /home/scc/.sdkman/etc/config +RUN bash -c "source /home/scc/.sdkman/bin/sdkman-init.sh" +RUN bash -c "sdkman-wrapper.sh install java ${SDKMAN_JAVA_INSTALLATION}" +ENV JAVA_HOME /home/scc/.sdkman/candidates/java/current/ ENV PATH "${PATH}:${JAVA_HOME}/bin" # Spring Cloud Contract ENV SERVER_PORT 8750 VOLUME /tmp -COPY target/maven_dependencies /root/.m2/repository/ -ADD target/libs/stub-runner-boot.jar stub-runner-boot.jar +COPY --chown=scc target/maven_dependencies /home/scc/.m2/repository/ +COPY --chown=scc target/libs/stub-runner-boot.jar stub-runner-boot.jar RUN echo "Fetching dependencies, please wait..." RUN java -Dthin.dryrun=true -jar stub-runner-boot.jar RUN java -Dthin.dryrun=true -jar stub-runner-boot.jar --thin.profile=rabbit RUN java -Dthin.dryrun=true -jar stub-runner-boot.jar --thin.profile=kafka -COPY run.sh run.sh +COPY --chown=scc run.sh run.sh ENTRYPOINT ["./run.sh"] diff --git a/docker/spring-cloud-contract-stub-runner-docker/run.sh b/docker/spring-cloud-contract-stub-runner-docker/run.sh index 299fe3c2c8..53c0252dbe 100755 --- a/docker/spring-cloud-contract-stub-runner-docker/run.sh +++ b/docker/spring-cloud-contract-stub-runner-docker/run.sh @@ -15,4 +15,4 @@ if [[ "${MESSAGING_TYPE}" != "" ]]; then fi echo "Please wait for the dependencies to be downloaded..." -java -Djava.security.egd=file:/dev/./urandom -jar /stub-runner-boot.jar ${ADDITIONAL_OPTS} +java -Djava.security.egd=file:/dev/./urandom -jar /home/scc/stub-runner-boot.jar ${ADDITIONAL_OPTS} 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 deleted file mode 100755 index e8fe81a953..0000000000 --- a/docker/spring-cloud-contract-stub-runner-docker/sdkman/sdkman-exec.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/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 index c7ff0c93f2..673ffaaf78 100755 --- a/docker/spring-cloud-contract-stub-runner-docker/sdkman/sdkman-wrapper.sh +++ b/docker/spring-cloud-contract-stub-runner-docker/sdkman/sdkman-wrapper.sh @@ -4,4 +4,4 @@ # 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 +[[ -s "/home/scc/.sdkman/bin/sdkman-init.sh" ]] && source "/home/scc/.sdkman/bin/sdkman-init.sh" && sdk $@