Toggle navigation
主页
English
K8S
Golang
Guitar
About Me
归档
标签
Welcome to Sanger's Blog!
dockerfile
docker
2023-06-15 15:02:31
14
0
0
sanger
docker
[TOC] # anapsix_alpine-java_jdk8 ```shell # AlpineLinux with a glibc-2.28-r0 and Oracle Java 8 FROM alpine:3.8 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=8 \ JAVA_VERSION_MINOR=192 \ JAVA_VERSION_BUILD=12 \ JAVA_PACKAGE=jdk \ HOTSWAP_AGENT_VERSION=1.2.0 \ JAVA_JCE=unlimited \ JAVA_HOME=/opt/jdk \ PATH=${PATH}:/opt/jdk/bin \ GLIBC_REPO=https://github.com/sgerrand/alpine-pkg-glibc \ GLIBC_VERSION=2.28-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 && \ 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 /tmp/dcevm && \ 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" && \ 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}/750e1c8617c5452694857ad95c3ee230/${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 && \ cd /tmp/dcevm && \ unzip DCEVM-light-8u112-installer.jar && \ mkdir -p /opt/jdk/jre/lib/amd64/dcevm && \ cp linux_amd64_compiler2/product/libjvm.so /opt/jdk/jre/lib/amd64/dcevm/libjvm.so && \ mkdir -p /opt/hotswap-agent/ && \ 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" && \ ln -s /opt/hotswap-agent/hotswap-agent-${HOTSWAP_AGENT_VERSION}.jar /opt/hotswap-agent/hotswap-agent.jar && \ 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/*src.zip \ /opt/jdk/lib/missioncontrol \ /opt/jdk/lib/visualvm \ /opt/jdk/lib/*javafx* \ /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/* && \ echo 'hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4' >> /etc/nsswitch.conf # EOF ``` # davidcaste_docker-alpine-java-unlimited-jce ``` # AlpineLinux with a glibc-2.23-r1, Oracle Java jdk8 and unlimited JCE policy patch FROM anapsix/alpine-java:jdk8 MAINTAINER David Castellanos <davidcaste@gmail.com> # do all in one step RUN apk upgrade --update && \ apk add --update curl unzip && \ curl -jksSLH "Cookie: oraclelicense=accept-securebackup-cookie" -o /tmp/unlimited_jce_policy.zip "http://download.oracle.com/otn-pub/java/jce/8/jce_policy-8.zip" && \ unzip -jo -d ${JAVA_HOME}/jre/lib/security /tmp/unlimited_jce_policy.zip && \ apk del curl unzip && \ rm -rf /tmp/* /var/cache/apk/* ``` # docker-alpine-tomcat_tomcat8 ``` FROM davidcaste/alpine-java-unlimited-jce:jdk8 MAINTAINER David Castellanos <davidcaste@gmail.com> ENV TOMCAT_MAJOR=8 \ TOMCAT_VERSION=8.5.3 \ TOMCAT_HOME=/opt/tomcat \ CATALINA_HOME=/opt/tomcat \ CATALINA_OUT=/dev/null RUN apk upgrade --update && \ apk add --update curl && \ curl -jksSL -o /tmp/apache-tomcat.tar.gz http://archive.apache.org/dist/tomcat/tomcat-${TOMCAT_MAJOR}/v${TOMCAT_VERSION}/bin/apache-tomcat-${TOMCAT_VERSION}.tar.gz && \ gunzip /tmp/apache-tomcat.tar.gz && \ tar -C /opt -xf /tmp/apache-tomcat.tar && \ ln -s /opt/apache-tomcat-${TOMCAT_VERSION} ${TOMCAT_HOME} && \ rm -rf ${TOMCAT_HOME}/webapps/* && \ apk del curl && \ rm -rf /tmp/* /var/cache/apk/* COPY logging.properties ${TOMCAT_HOME}/conf/logging.properties COPY server.xml ${TOMCAT_HOME}/conf/server.xml VOLUME ["/logs"] EXPOSE 8080 ``` # image时区问题(busybox) ``` FROM quay.io/prometheus/busybox:latest MAINTAINER Timon Wong <timon86.wang@gmail.com> COPY prometheus-webhook-dingtalk /bin/prometheus-webhook-dingtalk COPY dingtalk_cn.tmpl /usr/share/prometheus-webhook-dingtalk/template/default.tmpl # 关键在下面这句 RUN cat /usr/share/zoneinfo/Asia/Shanghai > /etc/localtime EXPOSE 8060 ENTRYPOINT [ "/bin/prometheus-webhook-dingtalk" ] You have new mail in /var/spool/mail/root ``` # multistage-build [官方说明](https://docs.docker.com/develop/develop-images/multistage-build/) ``` FROM golang:1.7.3 WORKDIR /go/src/github.com/alexellis/href-counter/ RUN go get -d -v golang.org/x/net/html COPY app.go . RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o app . FROM alpine:latest RUN apk --no-cache add ca-certificates WORKDIR /root/ COPY --from=0 /go/src/github.com/alexellis/href-counter/app . CMD ["./app"] ``` # JDK8-dockerfile ``` FROM alpine:3.8 ENV JAVA_VERSION=8 \ JAVA_UPDATE=131 \ JAVA_HOME="/usr/lib/jvm/default-jvm" \ TZ=Asia/Shanghai RUN apk add --no-cache --virtual=build-dependencies ca-certificates tzdata && \ cd /tmp && \ wget --no-cookies --no-check-certificate --header "Cookie:oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz" && \ tar -xzf jdk-8u131-linux-x64.tar.gz && \ mkdir -p /usr/lib/jvm && \ mv /tmp/jdk1.8.0_131 /usr/lib/jvm/java-8-oracle && \ ln -s /usr/lib/jvm/java-8-oracle "$JAVA_HOME" && \ ln -s "$JAVA_HOME/bin/"* "/usr/bin/" && \ rm -rf "$JAVA_HOME/"*src.zip && \ rm -rf "$JAVA_HOME/lib/missioncontrol" \ "$JAVA_HOME/lib/visualvm" \ "$JAVA_HOME/lib/"*javafx* \ "$JAVA_HOME/jre/lib/plugin.jar" \ "$JAVA_HOME/jre/lib/ext/jfxrt.jar" \ "$JAVA_HOME/jre/bin/javaws" \ "$JAVA_HOME/jre/lib/javaws.jar" \ "$JAVA_HOME/jre/lib/desktop" \ "$JAVA_HOME/jre/plugin" \ "$JAVA_HOME/jre/lib/"deploy* \ "$JAVA_HOME/jre/lib/"*javafx* \ "$JAVA_HOME/jre/lib/"*jfx* \ "$JAVA_HOME/jre/lib/amd64/libdecora_sse.so" \ "$JAVA_HOME/jre/lib/amd64/"libprism_*.so \ "$JAVA_HOME/jre/lib/amd64/libfxplugins.so" \ "$JAVA_HOME/jre/lib/amd64/libglass.so" \ "$JAVA_HOME/jre/lib/amd64/libgstreamer-lite.so" \ "$JAVA_HOME/jre/lib/amd64/"libjavafx*.so \ "$JAVA_HOME/jre/lib/amd64/"libjfx*.so && \ apk del build-dependencies && \ ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && \ echo $TZ | tee /etc/timezone && \ rm "/tmp/"* ``` # xxx ``` ```
上一篇:
Helm使用
下一篇:
常用docker命令
0
赞
14 人读过
新浪微博
微信
更多分享
腾讯微博
QQ空间
人人网
文档导航