fixes #1639: run with unprivileged user and bump java version to 8.0.292.hs (#1694)

* run with unprivileged user and bump java version to 8.0.292.hs

* revert to gradle 6.4
This commit is contained in:
Bastian Doetsch
2021-08-10 11:11:35 +02:00
committed by GitHub
parent 72537a25c3
commit 9b147dd991
8 changed files with 41 additions and 41 deletions

View File

@@ -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 <mgrzejszczak@pivotal.io>
LABEL Author="Marcin Grzejszczak <mgrzejszczak@pivotal.io>"
LABEL Author="Bastian Doetsch <bdoetsch@vmware.com>"
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"]

View File

@@ -6,7 +6,7 @@
<properties>
<dependency-management-plugin.version>1.0.8.RELEASE</dependency-management-plugin.version>
<plexus-archiver.version>4.2.5</plexus-archiver.version>
<sdkman-java-installation.version>8.0.275.hs-adpt</sdkman-java-installation.version>
<sdkman-java-installation.version>8.0.292.hs-adpt</sdkman-java-installation.version>
</properties>
<parent>

View File

@@ -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 "$@"

View File

@@ -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 $@
[[ -s "/home/scc/.sdkman/bin/sdkman-init.sh" ]] && source "/home/scc/.sdkman/bin/sdkman-init.sh" && sdk $@

View File

@@ -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 <mgrzejszczak@pivotal.io>
LABEL Author="Marcin Grzejszczak <mgrzejszczak@pivotal.io>"
LABEL Author="Bastian Doetsch <bdoetsch@vmware.com>"
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"]

View File

@@ -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}

View File

@@ -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 "$@"

View File

@@ -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 $@
[[ -s "/home/scc/.sdkman/bin/sdkman-init.sh" ]] && source "/home/scc/.sdkman/bin/sdkman-init.sh" && sdk $@