# file list
[22:43:27 root@centos7 jdk]#tree
.
├── Dockerfile
├── jdk-8u291-linux-x64.tar.gz
└── profile
0 directories, 3 files
# download jdk packages from oracle
# copy centos7:/etc/profile , add below 4 lines
[22:46:35 root@centos7 jdk]#tail -5 profile
export JAVA_HOME=/usr/local/jdk
export TOMCAT_HOME=/apps/tomcat
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$TOMCAT_HOME/bin:$PATH
export CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
# edit Dockerfile
[22:47:19 root@centos7 jdk]#cat Dockerfile
FROM centos7-base:v2
LABEL maintainer="noise <root@noise.com>"
ADD jdk-8u291-linux-x64.tar.gz /usr/local/src
RUN ln -s /usr/local/src/jdk1.8.0_291 /usr/local/jdk
ADD profile /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
# docker build
[22:41:06 root@centos7 jdk]#docker build -t jdk:v2.0 .
[22:41:15 root@centos7 jdk]#docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
jdk v2.0 e1ef0c699afa 4 seconds ago 708MB
# docker run to check if jdk is installed successfully
[22:41:19 root@centos7 jdk]#docker run -it jdk:v2.0 bash
[root@344f5caf88ee /]# java -version
java version "1.8.0_291"
Java(TM) SE Runtime Environment (build 1.8.0_291-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.291-b10, mixed mode)
[root@344f5caf88ee /]# exit
exit
# push to harbor
[22:41:43 root@centos7 jdk]#docker tag jdk:v2.0 10.0.0.101/example/jdk:v2.0
[22:42:43 root@centos7 jdk]#docker push 10.0.0.101/example/jdk:v2.0
The push refers to repository [10.0.0.101/example/jdk]
193267eb9d23: Pushed
9f7b8adad2b1: Pushed
496063d1b0f4: Pushed
7b578e484e37: Pushed
764e12176167: Pushed
034f282942cd: Pushed
v2.0: digest: sha256:b7b5863b67bbe0228da549df1b79d8c8a6be62627747d41f843d2e18b160a092 size: 1577
![]()