构建JDK Docker基础镜像

Posted by Kaka Blog on July 11, 2019

前言

其实,使用官方提供的镜像mcr.microsoft.com/java/jdk:8u212-zulu-alpine也是能够构建我们的Java应用。为什么要自己构建JDK基础镜像呢?原因有几方面:一、使用官方的镜像会出现时区差8小时问题。当然这个问题可以在Dockerfile解决;二、当我们使用一些中文字符集时,官方的JDK里不包含这些字符集,就会导致中文不能正常显示的问题。这两个问题是项目中遇到的情况,当然,自己构建JDK镜像还可以解决其它问题,待后续发现。

快速开始

下载JRE并上传到Linux服务器

1、下载JRE,下载地址:https://www.java.com/en/download/manual.jsp

img

2、删除无用文件

# 解压
tar -zxvf jre-8u211-linux-x64.tar.gz
# 删除无用文件
cd jre1.8.0_211
rm -rf COPYRIGHT LICENSE README release THIRDPARTYLICENSEREADME-JAVAFX.txt THIRDPARTYLICENSEREADME.txt Welcome.html
rm -rf   lib/plugin.jar \
           lib/ext/jfxrt.jar \
           bin/javaws \
           lib/javaws.jar \
           lib/desktop \
           plugin \
           lib/deploy* \
           lib/*javafx* \
           lib/*jfx* \
           lib/amd64/libdecora_sse.so \
           lib/amd64/libprism_*.so \
           lib/amd64/libfxplugins.so \
           lib/amd64/libglass.so \
           lib/amd64/libgstreamer-lite.so \
           lib/amd64/libjavafx*.so \
           lib/amd64/libjfx*.so

3、重新打包

tar zcvf jre8.tar.gz *

新建Dockerfile

# using alpine-glibc instead of alpine  is mainly because JDK relies on glibc
FROM ubuntu
# author
MAINTAINER fangweijun
# A streamlined jre
ADD jre8.tar.gz /usr/java/jdk/
# set env
ENV JAVA_HOME /usr/java/jdk
ENV LANG C.UTF-8 
ENV PATH ${PATH}:${JAVA_HOME}/bin
RUN echo 'Asia/Shanghai'>/etc/timezone
RUN mkdir /usr/share/fonts/chiness/ -p
ADD simsun.ttf /usr/share/fonts/chiness/
RUN apt-get update && apt-get -y install fontconfig xfonts-utils && apt-get -y  install language-pack-zh-hant language-pack-zh-hans && apt-get -y  install f
onts-arphic-ukai && apt-get -y  install ttf-wqy-zenhei && rm -rf /var/lib/apt/lists/*RUN echo "LANG="zh_CN.UTF-8"">/etc/environment && echo "LANGUAGE="zh_CN:zh:en_US:en"">/etc/environment
RUN dpkg-reconfigure locales && mkfontscale && mkfontdir
RUN fc-cache -fv
# run container with base path:/opt
WORKDIR /opt
  • simsun.ttf:微软宋体,因为项目需要用到,需要从Windows目录里或从网上下载该文件

构建Docker镜像

docker build -t registry.cn-shenzhen.aliyuncs.com/java8:1.0.0 .

参考