PageRenderTime 49ms CodeModel.GetById 22ms RepoModel.GetById 0ms app.codeStats 0ms

/docker/java/1.1.0/Dockerfile

https://bitbucket.org/thiago_caed/configurations
Dockerfile | 94 lines | 82 code | 6 blank | 6 comment | 41 complexity | c53bcef4574b422aa45840a6989de3a6 MD5 | raw file
  1. # AlpineLinux with a glibc-2.28-r0 and Oracle Java 8
  2. FROM alpine:3.8
  3. MAINTAINER Anastas Dancha <anapsix@random.io>
  4. # thanks to Vladimir Krivosheev <develar@gmail.com> aka @develar for smaller image
  5. # and Victor Palma <palma.victor@gmail.com> aka @devx for pointing it out
  6. # Java Version and other ENV
  7. ENV JAVA_VERSION_MAJOR=8 \
  8. JAVA_VERSION_MINOR=192 \
  9. JAVA_VERSION_BUILD=12 \
  10. JAVA_PACKAGE=jdk \
  11. HOTSWAP_AGENT_VERSION=1.2.0 \
  12. JAVA_JCE=unlimited \
  13. JAVA_HOME=/opt/jdk \
  14. PATH=${PATH}:/opt/jdk/bin \
  15. GLIBC_REPO=https://github.com/sgerrand/alpine-pkg-glibc \
  16. GLIBC_VERSION=2.28-r0 \
  17. LANG=C.UTF-8
  18. # do all in one step
  19. RUN set -ex && \
  20. [[ ${JAVA_VERSION_MAJOR} != 7 ]] || ( echo >&2 'Oracle no longer publishes JAVA7 packages' && exit 1 ) && \
  21. apk -U upgrade && \
  22. apk add libstdc++ curl ca-certificates bash && \
  23. for pkg in glibc-${GLIBC_VERSION} glibc-bin-${GLIBC_VERSION} glibc-i18n-${GLIBC_VERSION}; do curl -sSL ${GLIBC_REPO}/releases/download/${GLIBC_VERSION}/${pkg}.apk -o /tmp/${pkg}.apk; done && \
  24. apk add --allow-untrusted /tmp/*.apk && \
  25. rm -v /tmp/*.apk && \
  26. ( /usr/glibc-compat/bin/localedef --force --inputfile POSIX --charmap UTF-8 C.UTF-8 || true ) && \
  27. echo "export LANG=C.UTF-8" > /etc/profile.d/locale.sh && \
  28. /usr/glibc-compat/sbin/ldconfig /lib /usr/glibc-compat/lib && \
  29. mkdir /tmp/dcevm && \
  30. curl -L -o /tmp/dcevm/DCEVM-light-8u112-installer.jar "https://github.com/dcevm/dcevm/releases/download/light-jdk8u112%2B8/DCEVM-light-8u112-installer.jar" && \
  31. mkdir /opt && \
  32. curl -jksSLH "Cookie: oraclelicense=accept-securebackup-cookie" -o /tmp/java.tar.gz \
  33. http://download.oracle.com/otn-pub/java/jdk/${JAVA_VERSION_MAJOR}u${JAVA_VERSION_MINOR}-b${JAVA_VERSION_BUILD}/750e1c8617c5452694857ad95c3ee230/${JAVA_PACKAGE}-${JAVA_VERSION_MAJOR}u${JAVA_VERSION_MINOR}-linux-x64.tar.gz && \
  34. JAVA_PACKAGE_SHA256=$(curl -sSL https://www.oracle.com/webfolder/s/digest/${JAVA_VERSION_MAJOR}u${JAVA_VERSION_MINOR}checksum.html | grep -E "${JAVA_PACKAGE}-${JAVA_VERSION_MAJOR}u${JAVA_VERSION_MINOR}-linux-x64\.tar\.gz" | grep -Eo '(sha256: )[^<]+' | cut -d: -f2 | xargs) && \
  35. echo "${JAVA_PACKAGE_SHA256} /tmp/java.tar.gz" > /tmp/java.tar.gz.sha256 && \
  36. sha256sum -c /tmp/java.tar.gz.sha256 && \
  37. gunzip /tmp/java.tar.gz && \
  38. tar -C /opt -xf /tmp/java.tar && \
  39. ln -s /opt/jdk1.${JAVA_VERSION_MAJOR}.0_${JAVA_VERSION_MINOR} /opt/jdk && \
  40. cd /tmp/dcevm && \
  41. unzip DCEVM-light-8u112-installer.jar && \
  42. mkdir -p /opt/jdk/jre/lib/amd64/dcevm && \
  43. cp linux_amd64_compiler2/product/libjvm.so /opt/jdk/jre/lib/amd64/dcevm/libjvm.so && \
  44. mkdir -p /opt/hotswap-agent/ && \
  45. curl -L -o /opt/hotswap-agent/hotswap-agent-${HOTSWAP_AGENT_VERSION}.jar "https://github.com/HotswapProjects/HotswapAgent/releases/download/RELEASE-${HOTSWAP_AGENT_VERSION}/hotswap-agent-${HOTSWAP_AGENT_VERSION}.jar" && \
  46. ln -s /opt/hotswap-agent/hotswap-agent-${HOTSWAP_AGENT_VERSION}.jar /opt/hotswap-agent/hotswap-agent.jar && \
  47. if [ "${JAVA_JCE}" == "unlimited" ]; then echo "Installing Unlimited JCE policy" && \
  48. curl -jksSLH "Cookie: oraclelicense=accept-securebackup-cookie" -o /tmp/jce_policy-${JAVA_VERSION_MAJOR}.zip \
  49. http://download.oracle.com/otn-pub/java/jce/${JAVA_VERSION_MAJOR}/jce_policy-${JAVA_VERSION_MAJOR}.zip && \
  50. cd /tmp && unzip /tmp/jce_policy-${JAVA_VERSION_MAJOR}.zip && \
  51. cp -v /tmp/UnlimitedJCEPolicyJDK8/*.jar /opt/jdk/jre/lib/security/; \
  52. fi && \
  53. sed -i s/#networkaddress.cache.ttl=-1/networkaddress.cache.ttl=10/ $JAVA_HOME/jre/lib/security/java.security && \
  54. apk del curl glibc-i18n && \
  55. rm -rf /opt/jdk/*src.zip \
  56. /opt/jdk/lib/missioncontrol \
  57. /opt/jdk/lib/visualvm \
  58. /opt/jdk/lib/*javafx* \
  59. /opt/jdk/jre/plugin \
  60. /opt/jdk/jre/bin/javaws \
  61. /opt/jdk/jre/bin/jjs \
  62. /opt/jdk/jre/bin/orbd \
  63. /opt/jdk/jre/bin/pack200 \
  64. /opt/jdk/jre/bin/policytool \
  65. /opt/jdk/jre/bin/rmid \
  66. /opt/jdk/jre/bin/rmiregistry \
  67. /opt/jdk/jre/bin/servertool \
  68. /opt/jdk/jre/bin/tnameserv \
  69. /opt/jdk/jre/bin/unpack200 \
  70. /opt/jdk/jre/lib/javaws.jar \
  71. /opt/jdk/jre/lib/deploy* \
  72. /opt/jdk/jre/lib/desktop \
  73. /opt/jdk/jre/lib/*javafx* \
  74. /opt/jdk/jre/lib/*jfx* \
  75. /opt/jdk/jre/lib/amd64/libdecora_sse.so \
  76. /opt/jdk/jre/lib/amd64/libprism_*.so \
  77. /opt/jdk/jre/lib/amd64/libfxplugins.so \
  78. /opt/jdk/jre/lib/amd64/libglass.so \
  79. /opt/jdk/jre/lib/amd64/libgstreamer-lite.so \
  80. /opt/jdk/jre/lib/amd64/libjavafx*.so \
  81. /opt/jdk/jre/lib/amd64/libjfx*.so \
  82. /opt/jdk/jre/lib/ext/jfxrt.jar \
  83. /opt/jdk/jre/lib/ext/nashorn.jar \
  84. /opt/jdk/jre/lib/oblique-fonts \
  85. /opt/jdk/jre/lib/plugin.jar \
  86. /tmp/* /var/cache/apk/* && \
  87. echo 'hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4' >> /etc/nsswitch.conf
  88. # EOF