一、背景:
二、下载maven、jdk软件:
1、下载jdk-17版本:
# wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz
2、下载maven 3.8.8版本:
Maven – Download Apache Maven
三、开发Dockerfile文件内容:
[root@stsc-master-01 xhj]# vim Dockerfile
FROM centos:7.9.2009
MAINTAINER xionghj
ADD jdk-17_linux-x64_bin.tar.gz /usr/local/java/
ADD apache-maven-3.8.8-bin.tar.gz /usr/local
ENV JAVA_HOME=/usr/local/java/jdk-17.0.10
ENV CLASSPATH=.:$JAVA_HOME/lib/jrt-fs.jar
ENV PATH=$PATH:$JAVA_HOME/bin
ENV MAVEN_HOME=/usr/local/apache-maven-3.8.8
ENV PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH
四、构建镜像并验证镜像:
1、 构建镜像:
[root@stsc-master-01 xhj]# docker build --platform linux/amd64 -t maven-jdk:v3.8.8-17.0.10 .
Sending build context to Docker daemon 190.8MB
Step 1/9 : FROM centos:7.9.2009
---> eeb6ee3f44bd
Step 2/9 : MAINTAINER xionghj
---> Running in 1920884fbeef
Removing intermediate container 1920884fbeef
---> 08bd6e233730
Step 3/9 : ADD jdk-17_linux-x64_bin.tar.gz /usr/local/java/
---> 7a4b741c8d1b
Step 4/9 : ADD apache-maven-3.8.8-bin.tar.gz /usr/local
---> b4ee05caffa7
Step 5/9 : ENV JAVA_HOME=/usr/local/java/jdk-17.0.10
---> Running in b4de7726b4db
Removing intermediate container b4de7726b4db
---> 6b88418e0d70
Step 6/9 : ENV CLASSPATH=.:$JAVA_HOME/lib/jrt-fs.jar
---> Running in 1af89c3c43fd
Removing intermediate container 1af89c3c43fd
---> 65ab3e5b6f6f
Step 7/9 : ENV PATH=$PATH:$JAVA_HOME/bin
---> Running in e08584fbcd51
Removing intermediate container e08584fbcd51
---> d3c995b7f157
Step 8/9 : ENV MAVEN_HOME=/usr/local/apache-maven-3.8.8
---> Running in 2a542665d081
Removing intermediate container 2a542665d081
---> 6c9d4cd34098
Step 9/9 : ENV PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH
---> Running in d35f0be3fb99
Removing intermediate container d35f0be3fb99
---> afada222e5ff
Successfully built afada222e5ff
Successfully tagged maven-jdk:v3.8.8-17.0.10
[root@stsc-master-01 xhj]# docker images | grep maven-jdk
maven-jdk v3.8.8-17.0.10 afada222e5ff 3 minutes ago 532MB
2、验证镜像:
[root@stsc-master-01 xhj]# docker run -di --name maven-cicd -d maven-jdk:v3.8.8-17.0.10
e0fde146249af20ae0aec81102e141026d8a7c4ff3eaa76846e7b365a86fe729
[root@stsc-master-01 xhj]# docker exec -it maven-cicd /bin/bash
[root@e0fde146249a /]# java -version
java version "17.0.10" 2024-01-16 LTS
Java(TM) SE Runtime Environment (build 17.0.10+11-LTS-240)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.10+11-LTS-240, mixed mode, sharing)
[root@e0fde146249a /]# mvn -version
Apache Maven 3.8.8 (4c87b05d9aedce574290d1acc98575ed5eb6cd39)
Maven home: /usr/local/apache-maven-3.8.8
Java version: 17.0.10, vendor: Oracle Corporation, runtime: /usr/local/java/jdk-17.0.10
Default locale: en_US, platform encoding: ANSI_X3.4-1968
OS name: "linux", version: "3.10.0-1127.el7.x86_64", arch: "amd64", family: "unix"
[root@e0fde146249a /]#
五、上传镜像到harbor仓库里:
总结: