zoukankan      html  css  js  c++  java
  • docker--Dockerfile--java

    # AlpineLinux with a glibc-2.26-r0 and Oracle Java 7
    FROM alpine:3.6

    MAINTAINER Anastas Dancha <anapsix@random.io>
    # thanks to Vladimir Krivosheev <develar@gmail.com> aka @develar for smaller image
    # and Victor Palma <palma.victor@gmail.com> aka @devx for pointing it out

    # Java Version and other ENV
    ENV JAVA_VERSION_MAJOR=7
    JAVA_VERSION_MINOR=80
    JAVA_VERSION_BUILD=15
    JAVA_PACKAGE=server-jre
    JAVA_JCE=standard
    JAVA_HOME=/opt/jdk
    PATH=${PATH}:/opt/jdk/bin
    GLIBC_REPO=https://github.com/sgerrand/alpine-pkg-glibc
    GLIBC_VERSION=2.26-r0
    LANG=C.UTF-8

    # do all in one step
    RUN set -ex &&
    [[ ${JAVA_VERSION_MAJOR} != 7 ]] || ( echo >&2 'Oracle no longer publishes JAVA7 packages' && exit 1 ) &&
    apk -U upgrade &&
    apk add libstdc++ curl ca-certificates bash java-cacerts &&
    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 &&
    apk add --allow-untrusted /tmp/*.apk &&
    rm -v /tmp/*.apk &&
    ( /usr/glibc-compat/bin/localedef --force --inputfile POSIX --charmap UTF-8 C.UTF-8 || true ) &&
    echo "export LANG=C.UTF-8" > /etc/profile.d/locale.sh &&
    /usr/glibc-compat/sbin/ldconfig /lib /usr/glibc-compat/lib &&
    mkdir /opt &&
    curl -jksSLH "Cookie: oraclelicense=accept-securebackup-cookie" -o /tmp/java.tar.gz
    http://download.oracle.com/otn-pub/java/jdk/${JAVA_VERSION_MAJOR}u${JAVA_VERSION_MINOR}-b${JAVA_VERSION_BUILD}/${JAVA_PACKAGE}-${JAVA_VERSION_MAJOR}u${JAVA_VERSION_MINOR}-linux-x64.tar.gz &&
    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) &&
    echo "${JAVA_PACKAGE_SHA256} /tmp/java.tar.gz" > /tmp/java.tar.gz.sha256 &&
    sha256sum -c /tmp/java.tar.gz.sha256 &&
    gunzip /tmp/java.tar.gz &&
    tar -C /opt -xf /tmp/java.tar &&
    ln -s /opt/jdk1.${JAVA_VERSION_MAJOR}.0_${JAVA_VERSION_MINOR} /opt/jdk &&
    find /opt/jdk/ -maxdepth 1 -mindepth 1 | grep -v jre | xargs rm -rf &&
    cd /opt/jdk/ && ln -s ./jre/bin ./bin &&
    if [ "${JAVA_JCE}" == "unlimited" ]; then echo "Installing Unlimited JCE policy" &&
    curl -jksSLH "Cookie: oraclelicense=accept-securebackup-cookie" -o /tmp/jce_policy-${JAVA_VERSION_MAJOR}.zip
    http://download.oracle.com/otn-pub/java/jce/${JAVA_VERSION_MAJOR}/jce_policy-${JAVA_VERSION_MAJOR}.zip &&
    cd /tmp && unzip /tmp/jce_policy-${JAVA_VERSION_MAJOR}.zip &&
    cp -v /tmp/UnlimitedJCEPolicyJDK8/*.jar /opt/jdk/jre/lib/security/;
    fi &&
    sed -i s/#networkaddress.cache.ttl=-1/networkaddress.cache.ttl=10/ $JAVA_HOME/jre/lib/security/java.security &&
    apk del curl glibc-i18n &&
    rm -rf /opt/jdk/jre/plugin
    /opt/jdk/jre/bin/javaws
    /opt/jdk/jre/bin/jjs
    /opt/jdk/jre/bin/orbd
    /opt/jdk/jre/bin/pack200
    /opt/jdk/jre/bin/policytool
    /opt/jdk/jre/bin/rmid
    /opt/jdk/jre/bin/rmiregistry
    /opt/jdk/jre/bin/servertool
    /opt/jdk/jre/bin/tnameserv
    /opt/jdk/jre/bin/unpack200
    /opt/jdk/jre/lib/javaws.jar
    /opt/jdk/jre/lib/deploy*
    /opt/jdk/jre/lib/desktop
    /opt/jdk/jre/lib/*javafx*
    /opt/jdk/jre/lib/*jfx*
    /opt/jdk/jre/lib/amd64/libdecora_sse.so
    /opt/jdk/jre/lib/amd64/libprism_*.so
    /opt/jdk/jre/lib/amd64/libfxplugins.so
    /opt/jdk/jre/lib/amd64/libglass.so
    /opt/jdk/jre/lib/amd64/libgstreamer-lite.so
    /opt/jdk/jre/lib/amd64/libjavafx*.so
    /opt/jdk/jre/lib/amd64/libjfx*.so
    /opt/jdk/jre/lib/ext/jfxrt.jar
    /opt/jdk/jre/lib/ext/nashorn.jar
    /opt/jdk/jre/lib/oblique-fonts
    /opt/jdk/jre/lib/plugin.jar
    /tmp/* /var/cache/apk/* &&
    ln -sf /etc/ssl/certs/java/cacerts $JAVA_HOME/jre/lib/security/cacerts &&
    echo 'hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4' >> /etc/nsswitch.conf

  • 相关阅读:
    如何通过网页远程控制linux --远程访问Linux桌面
    用Python快速实现HTTP和FTP服务器
    两台server间测速工具iperf3
    向Linux进程发送信号
    谓语必须为动词或动词短语~
    2021-6-2 支撑
    运用学过的设计原则和思想完善之前讲的性能计数器项目(下)
    运用学过的设计原则和思想完善之前讲的性能计数器项目(上)
    总结回顾面向对象、设计原则、编程规范、重构技巧等知识点
    实战二(下):重构ID生成器项目中各函数的异常处理代码
  • 原文地址:https://www.cnblogs.com/kuku0223/p/8446015.html
Copyright © 2011-2022 走看看