轉載:https://blog.csdn.net/dannyvon/article/details/80092834node
用Alpine跑了JDK8的鏡像結果發現,JDK仍是沒法執行.後來翻閱文檔才發現linux
Java是基於GUN Standard C library(glibc)git
Alpine是基於MUSL libc(mini libc)
github
因此Alpine須要安裝glibc的庫,如下是官方給出wikibash
https://wiki.alpinelinux.org/wiki/Running_glibc_programsmaven
至於如何安裝,能夠參考:ide
https://github.com/sgerrand/alpine-pkg-glibc.net
個人Dockerfileblog
FROM alpine:3.7 WORKDIR /opt USER root #******************更換Alpine源爲mirrors.ustc.edu.cn****************** RUN echo http://mirrors.ustc.edu.cn/alpine/v3.7/main > /etc/apk/repositories && \ echo http://mirrors.ustc.edu.cn/alpine/v3.7/community >> /etc/apk/repositories && \ apk update && apk upgrade #******************Alpine安裝 Glibc https://github.com/sgerrand/alpine-pkg-glibc ***************** RUN apk --no-cache add ca-certificates && \ wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub && \ wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.27-r0/glibc-2.27-r0.apk && \ apk add glibc-2.27-r0.apk ADD jdk-8u131-linux-x64.tar.gz filebeat-5.0.0-x86_64.rpm /opt/ #******************設置JAVA變量環境****************** ENV JAVA_HOME=/opt/jdk1.8.0_131 \ JAVA_BIN=/opt/jdk1.8.0_131/bin \ CLASSPATH=/opt/jdk1.8.0_131/lib:/opt/jdk1.8.0_131/jrelib:${CLASSPATH} \ PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/opt/jdk1.8.0_131/bin:/opt/jdk1.8.0_131/jre/bin:/opt/maven-3.1.1/bin:/opt/node-v8.11.1-linux-x64/bin:/root/bin:${PATH