前言
其实,使用官方提供的镜像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
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 .