jdk + maven docker基础镜像制作

背景

  • 项目学习之初, 在本地用的是 jdk21, 所以如果想要用 docker 部署, 就需要 jdk21 的镜像, 很遗憾, 在网上没找到现成的( 也有可能是我不会找)

准备工作

  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)

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

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

    1
    2
    3
    4
    5
    6
    
    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

    1
    
    docker build -t jdk21-mvn3.9.9:v1.0 .
    
    • 执行结果
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    
    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. 启动镜像

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

    1
    
    docker exec -it jdk-test bash
    
    • 查看 Java 版本
    1
    
    java -version
    
    • 执行结果
    1
    2
    3
    
    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 版本
    1
    
    mvn -v
    
    • 执行结果
    1
    2
    3
    4
    5
    
    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 镜像完成

使用 Hugo 构建
主题 StackJimmy 设计