Dynamically set JAVA_HOME of docker container

前端 未结 4 1349
粉色の甜心
粉色の甜心 2020-12-21 10:24

My docker container requires JAVA_HOME to be set. I have added it to the Dockerfile as below

ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64/jre


        
相关标签:
4条回答
  • 2020-12-21 10:26

    The image built from a Dockerfile is forever static. Its Java location will never change unless rebuilt.

    When the image is started as a container, however, anything can happen. If there's any scripts that will edit the Java location during runtime, then this script is probably also where JAVA_HOME should be updated.

    If you mean that you want to dynamically build your image using an arbitrary base image with differing java location then this should probably be handled by a build script.

    0 讨论(0)
  • 2020-12-21 10:34

    Set JAVA_HOME in docker container

    Default Docker file of the official image is Dockerfile

    If you still want your own image with Java home set. Add this lines to your Dockerfile

    RUN apt-get update && \
        apt-get install -y openjdk-8-jdk && \
        apt-get install -y ant && \
        apt-get clean && \
        rm -rf /var/lib/apt/lists/ && \
        rm -rf /var/cache/oracle-jdk8-installer;
    
    ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64/
    RUN export JAVA_HOME
    
    0 讨论(0)
  • 2020-12-21 10:47

    May be you can do something like this in CMD :

    # rpm -qa | grep java-1.8
    java-1.8.0-openjdk-1.8.0.131-2.b11.el7_3.x86_64
    

    and then

    #rpm -ql java-1.8.0-openjdk | sed -n '1p' | cut -d/ -f1-5
    /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-2.b11.el7_3.x86_64
    
    0 讨论(0)
  • 2020-12-21 10:49

    It's possible add the JAVA_HOME in a ENV Dockerfile instruction. But if the Java package is updated you have to change the ENV JAVA_HOME in your Dockerfile.

    But I found a method to set the JAVA_HOME automatically without update the Dockerfile.

    RUN export JAVA_HOME="$(dirname $(dirname $(readlink -f $(which java))))"
    

    I hope this can help you.

    0 讨论(0)
提交回复
热议问题