基于alpine-glibc制作jdk8镜像

一 工作目录

root@k8s-harbor-01:/data/dockerfile/web/jdk# pwd
/data/dockerfile/web/jdk

二 下载jdk

下载地址:https://www.oracle.com/java/technologies/downloads/#java8

三 编写Dockerfile

root@k8s-harbor-01:/data/dockerfile/web/jdk# cat Dockerfile 
FROM 192.168.174.120/baseimages/alpine_glibc-base:3.15

ADD jdk-8u311-linux-x64.tar.gz /usr/local/
RUN ln -sv /usr/local/jdk1.8.0_311/ /usr/local/jdk \
    && echo "export JAVA_HOME=/usr/local/jdk" >> /etc/profile \
    && echo "export PATH=\$JAVA_HOME/bin:\$JAVA_HOME/jre/bin:\$PATH" >> /etc/profile \
    && echo "export CLASSPATH=.\$CLASSPATH:\$JAVA_HOME/lib:\$JAVA_HOME/jre/lib:\$JAVA_HOME/lib/tools.jar" >> /etc/profile 

ENV JAVA_HOME /usr/local/jdk
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib/:$JRE_HOME/lib/
ENV PATH $PATH:$JAVA_HOME/bin

四 编写构建镜像脚本

root@k8s-harbor-01:/data/dockerfile/web/jdk# cat build-command.sh 
#!/bin/bash

docker build -t 192.168.174.120/baseimages/jdk-base:1.8.0_311 .

#docker push 192.168.174.120/baseimages/jdk-base:1.8.0_311

五 构建镜像

root@k8s-harbor-01:/data/dockerfile/web/jdk# ./build-command.sh 
Sending build context to Docker daemon  888.7MB
Step 1/7 : FROM 192.168.174.120/baseimages/alpine_glibc-base:3.15
 ---> 6a740bc2390f
Step 2/7 : ADD jdk-8u311-linux-x64.tar.gz /usr/local/
 ---> 57ad5640fcd2
Step 3/7 : RUN ln -sv /usr/local/jdk1.8.0_311/ /usr/local/jdk     && echo "export JAVA_HOME=/usr/local/jdk" >> /etc/profile     && echo "export PATH=\$JAVA_HOME/bin:\$JAVA_HOME/jre/bin:\$PATH" >> /etc/profile     && echo "export CLASSPATH=.\$CLASSPATH:\$JAVA_HOME/lib:\$JAVA_HOME/jre/lib:\$JAVA_HOME/lib/tools.jar" >> /etc/profile
 ---> Running in 21a566764594
'/usr/local/jdk' -> '/usr/local/jdk1.8.0_311/'
Removing intermediate container 21a566764594
 ---> 86f1884b8456
Step 4/7 : ENV JAVA_HOME /usr/local/jdk
 ---> Running in 1ed761acc179
Removing intermediate container 1ed761acc179
 ---> db335fa9cf53
Step 5/7 : ENV JRE_HOME $JAVA_HOME/jre
 ---> Running in 8fcf140062e7
Removing intermediate container 8fcf140062e7
 ---> 10fd183602ca
Step 6/7 : ENV CLASSPATH $JAVA_HOME/lib/:$JRE_HOME/lib/
 ---> Running in 07867634f80d
Removing intermediate container 07867634f80d
 ---> 5edea6817d5a
Step 7/7 : ENV PATH $PATH:$JAVA_HOME/bin
 ---> Running in 7f9421d00f96
Removing intermediate container 7f9421d00f96
 ---> f7f2cc224b22
Successfully built f7f2cc224b22
Successfully tagged 192.168.174.120/baseimages/jdk-base:1.8.0_311

六 验证镜像

root@k8s-harbor-01:/data/dockerfile/web/jdk# docker run -it --rm 192.168.174.120/baseimages/jdk-base:1.8.0_311 java -version
java version "1.8.0_311"
Java(TM) SE Runtime Environment (build 1.8.0_311-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.311-b11, mixed mode)

七 上传镜像到harbor

root@k8s-harbor-01:/data/dockerfile/web/jdk# docker push 192.168.174.120/baseimages/jdk-base:1.8.0_311
上一篇:基于Alpine编写Haproxy的Dockerfile


下一篇:Dockerfile制作alpine-glibc镜像