docker构建jdk11
centos7.9yum源CentOS-Base.repo。
·
# 建立一个新的镜像文件,配置模板:新建立的镜像是以centos为基础模板
# 因为jdk必须运行在操作系统之上
FROM centos:7.9.2009
# 作者名
MAINTAINER yuanhang
# 创建一个新目录来存储jdk文件
RUN mkdir /usr/local/java
#将jdk压缩文件复制到镜像中,它将自动解压缩tar文件
ADD jdk-11_linux-x64_bin.tar.gz /usr/local/java/
# 设置时区
RUN mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
ADD ./CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo
RUN yum clean all
RUN yum makecache
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN yum install dejavu-sans-fonts fontconfig -y
# 设置环境变量
ENV JAVA_HOME /usr/local/java/jdk-11
ENV PATH $JAVA_HOME/bin:$PATH
# VOLUME 指定了临时文件目录为/tmp
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp
docker build -f ./Dockerfile_jdk -t java:11 .
测试
docker run -it --rm java:11 java -version
docker 镜像
centos7.9 yum源 CentOS-Base.repo
# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client. You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#
[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=https://mirrors.aliyun.com/centos-vault/7.9.2009/os/$basearch/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-7
#released updates
[updates]
name=CentOS-$releasever - Updates - mirrors.aliyun.com
failovermethod=priority
baseurl=https://mirrors.aliyun.com/centos-vault/7.9.2009/updates/$basearch/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-7
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras - mirrors.aliyun.com
failovermethod=priority
baseurl=https://mirrors.aliyun.com/centos-vault/7.9.2009/extras/$basearch/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-7
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus - mirrors.aliyun.com
failovermethod=priority
baseurl=https://mirrors.aliyun.com/centos-vault/7.9.2009/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-7
#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib - mirrors.aliyun.com
failovermethod=priority
baseurl=https://mirrors.aliyun.com/centos-vault/7.9.2009/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-7
jdk21镜像
# 建立一个新的镜像文件,配置模板:新建立的镜像是以centos为基础模板
# 因为jdk必须运行在操作系统之上
FROM centos:7.9.2009
# 作者名
MAINTAINER yuanhang
# 设置时区
RUN mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
ADD ./CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo
RUN yum clean all
RUN yum makecache
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN yum install dejavu-sans-fonts fontconfig tar gzip -y
# 创建一个新目录来存储jdk文件
RUN mkdir /usr/local/java
# 复制JDK安装包到容器中
COPY jdk-21_linux-x64_bin.tar.gz /usr/local/java/jdk-21_linux-x64_bin.tar.gz
# 解压JDK安装包
RUN cd /usr/local/java/ && \
tar -zxzf jdk-21_linux-x64_bin.tar.gz && \
rm jdk-21_linux-x64_bin.tar.gz && \
alternatives --install /usr/bin/java java /usr/local/java/jdk-21.0.6/bin/java 2 && \
alternatives --set java /usr/local/java/jdk-21.0.6/bin/java
# 设置环境变量
ENV JAVA_HOME /usr/local/java/jdk-21.0.6
ENV PATH $JAVA_HOME/bin:$PATH
RUN source /etc/profile
# 验证安装 查看jdk解压的路径
RUN cd /usr/local/java/ && pwd && ls
RUN java -version
# VOLUME 指定了临时文件目录为/tmp
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp
带有微软雅黑字体的jdk11
# 建立一个新的镜像文件,配置模板:新建立的镜像是以centos为基础模板
# 因为jdk必须运行在操作系统之上
FROM centos:7.9.2009
# 作者名
MAINTAINER yuanhang
# 创建一个新目录来存储jdk文件
RUN mkdir /usr/local/java
#将jdk压缩文件复制到镜像中,它将自动解压缩tar文件
ADD jdk-11_linux-x64_bin.tar.gz /usr/local/java/
# 设置时区
RUN mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
ADD ./CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo
RUN yum clean all
RUN yum makecache
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# 安装字体工具
RUN yum install dejavu-sans-fonts fontconfig mkfontscale -y
# 创建字体目录并复制字体
RUN mkdir -p /usr/share/fonts/msyh
COPY MSYH*.TTC /usr/share/fonts/msyh/
# 设置权限并更新字体缓存
RUN chmod -R 755 /usr/share/fonts/msyh && \
cd /usr/share/fonts/msyh && \
mkfontscale && \
mkfontdir && \
fc-cache -fv
# 验证字体安装
RUN fc-list :lang=zh | grep "Microsoft YaHei"
# 设置环境变量
ENV JAVA_HOME /usr/local/java/jdk-11
ENV PATH $JAVA_HOME/bin:$PATH
# VOLUME 指定了临时文件目录为/tmp
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp
字体从 C:\Windows\Fonts 可以找到
更多推荐
所有评论(0)