One - One Code All

Blog Content

Alpine镜像中Gnu Libc的安装及设定方法

容器化 运维   2017-08-26 22:43:39

Java是基于GUN Standard C library(glibc)

Alpine是基于MUSL libc(mini libc)

所以Alpine跑Java需要安装glibc的库,以下是官方给出wiki

https://wiki.alpinelinux.org/wiki/Running_glibc_programs 

至于如何安装,可以参考:

https://github.com/sgerrand/alpine-pkg-glibc 

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.32-r0/glibc-2.32-r0.apk
apk add glibc-2.32-r0.apk

locals: 本地化,避免中文乱码

wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.32-r0/glibc-bin-2.32-r0.apk
wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.32-r0/glibc-i18n-2.32-r0.apk
apk add glibc-bin-2.32-r0.apk glibc-i18n-2.32-r0.apk
/usr/glibc-compat/bin/localedef -i en_US -f UTF-8 en_US.UTF-8

制作java的dockerfile

FROM alpine:3.7
ADD jdk1.8.0_101.tar.gz /usr/local
 
******************更换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
RUN 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://raw.githubusercontent.com/sgerrand/alpine-pkg-glibc/master/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
 
 
******************设置JAVA变量环境******************
ENV JAVA_HOME=/usr/local/jdk1.8.0_101
ENV CLASSPATH=$JAVA_HOME/bin
ENV PATH=.:$JAVA_HOME/bin:$PATH
CMD ["java","-version"]



上一篇:TensorFlow Docker镜像下载
下一篇:Docker无法启动容器时如何修改配置

The minute you think of giving up, think of the reason why you held on so long.