arm架构服务器,通过dockerfile构建jdk基础镜像

本文介绍了如何使用Dockerfile基于Alpine Linux构建包含Java的镜像,过程中涉及到更换国内软件仓库、安装glibc库以及配置时区。尽管Alpine以其小巧著称,但构建后的镜像大小并不理想。作者希望大神指点如何进一步减小镜像体积,以及优化基于CentOS的基础镜像构建方法。
摘要由CSDN通过智能技术生成

因为 Java是基于GUN Standard C library(glibc) 而 Alpine是基于MUSL libc(mini libc),所以,选择基础镜像 alp,需要 安装glibc的库,如下是我的dockerfile:

FROM alpine:3

MAINTAINER "manluqiusuo<lansekaola@163.com>"
LABEL version="1.0"
LABEL description="This is a jdk8 base image"

#设置国内软件仓库镜像
RUN sed -i 's!http://dl-cdn.alpinelinux.org/!https://mirrors.ustc.edu.cn/!g' /etc/apk/repositories
#更换Alpine源为mirrors.ustc.edu.cn
#RUN echo http://mirrors.ustc.edu.cn/alpine/v3.13/main > /etc/apk/repositories \
#    && echo http://mirrors.ustc.edu.cn/alpine/v3.13/community >> /etc/apk/repositories


WORKDIR /glibc
COPY ./glibc/ /glibc/

WORKDIR /java
ADD ./jdk-8u281-linux-aarch64.tar.gz /java/

#安装时区设置  复制本地时区信息到镜像中  安装 Glibc  注意清理cache
RUN apk --no-cache add tzdata \
    && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
    && echo "Asia/Shanghai" > /etc/timezone \
    && apk add --allow-untrusted /glibc/*.apk \
    && rm -rf /glibc \
    && rm -rf /var/lib/apt/lists/*
#配置时区
ENV TZ Asia/Shanghai
# 输出,和当前时间对比  删除其他时区配置,节省空间
RUN date -R && apk del tzdata
#配置JDK环境变量
ENV JAVA_HOME /java/jdk1.8.0_281
ENV PATH $JAVA_HOME/bin:$PATH

不通的jdk版本,自己更换jdk安装包,我这里使用的jdk1.8,也切换过jdk15,都可以,glibc我使用过几个版本,只有这个版本,没问题,有需要的可以下载:

https://download.csdn.net/download/lansekaola/16176326

没有下载积分,只是为了方便大家,不用再去找了!

这个镜像构建完毕后,有几点不足,希望大神帮忙给解答一下:

1.都说依据alpine做基础镜像后,构建的镜像非常小,可是,我这个构建出来的,却不是特别小,希望大神们给看看,我的dockerfile那里写的不足

2.我用centos:7做基础镜像,比这个还简单,不用安装glibc等,但是,镜像更大.有没有什么改进centos:7打的镜像包

说白了,就是如何能做的体积更小,望大神给帮忙看看

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

漫路求索

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值