jdk + maven docker基础镜像制作

HanGR 于 2024-09-01 发布


背景


准备工作

  1. 一台 Linux 服务器, 我在阿里云上买的 centos 7.9

  2. jdk-21_linux-x64_bin.tar.gz 下载地址

  3. apache-maven-3.9.9-bin.tar.gz 下载地址


制作流程

  1. 新建一个目录: jdk(目录名字随便起, 我使用的是 jdk)

     mkdir jdk
    
  2. 将下载好的 jdk 和 maven 文件放入 jdk 目录

     [root@iZ2zebhs1xui02zif4j269Z jdk]# ls
     apache-maven-3.9.9-bin.tar.gz  Dockerfile  jdk-21_linux-x64_bin.tar.gz
    
  3. 在 jdk 目录下新建一个 Dockerfile 文件

     FROM centos:7.9.2009
     ADD jdk-21_linux-x64_bin.tar.gz /usr/local
     ADD apache-maven-3.9.9-bin.tar.gz /usr/local
     ENV JAVA_HOME=/usr/local/jdk-21.0.4
     ENV MAVEN_HOME=/usr/local/apache-maven-3.9.9
     ENV PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH
    
  4. 执行 Dockerfile

     docker build -t jdk21-mvn3.9.9:v1.0 .
    
    • 执行结果
     Sending build context to Docker daemon 206.7 MB
     Step 1/6 : FROM centos:7.9.2009
      ---> eeb6ee3f44bd
     Step 2/6 : ADD jdk-21_linux-x64_bin.tar.gz /usr/local
      ---> Using cache
      ---> 2b98b6050f9d
     Step 3/6 : ADD apache-maven-3.9.9-bin.tar.gz /usr/local
      ---> Using cache
      ---> 19cb5303fe32
     Step 4/6 : ENV JAVA_HOME /usr/local/jdk-21.0.4
      ---> Running in 969b02b55e92
      ---> b7925c208a9c
     Removing intermediate container 969b02b55e92
     Step 5/6 : ENV MAVEN_HOME /usr/local/apache-maven-3.9.9
      ---> Running in 9ada82a6e0ed
      ---> 5a2a35a2bd52
     Removing intermediate container 9ada82a6e0ed
     Step 6/6 : ENV PATH $JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH
      ---> Running in 560722dc16f8
      ---> 607c4b496e18
     Removing intermediate container 560722dc16f8
     Successfully built 607c4b496e18
    
  5. 启动镜像

     docker run -it -d --hostname jdk-test --name jdk-test jdk21-mvn3.9.9:v1.0
    
  6. 进入容器查看 jdk 和 maven 启动情况

     docker exec -it jdk-test bash
    
    • 查看 Java 版本
     java -version
    
    • 执行结果
     java 21.0.4 2024-07-16 LTS
     Java(TM) SE Runtime Environment (build 21.0.4+8-LTS-274)
     Java HotSpot(TM) 64-Bit Server VM (build 21.0.4+8-LTS-274, mixed mode, sharing)
    
    • 查看 mvn 版本
     mvn -v
    
    • 执行结果
     Apache Maven 3.9.9 (8e8579a9e76f7d015ee5ec7bfcdc97d260186937)
     Maven home: /usr/local/apache-maven-3.9.9
     Java version: 21.0.4, vendor: Oracle Corporation, runtime: /usr/local/jdk-21.0.4
     Default locale: en_US, platform encoding: UTF-8
     OS name: "linux", version: "3.10.0-1127.19.1.el7.x86_64", arch: "amd64", family: "unix"
    


测试成功, 上传到镜像仓库, 至此我需要的 docker 镜像完成