0

I have this dockerfile:

FROM ubuntu:latest

COPY /components/openjdk/files  /
COPY  OpenJDK11U-jdk_x64_linux_openj9_11.0.10_9_openj9-0.24.0.tar.gz /
ARG VER_OPENJDK=11

ENV JAVA_HOME=/usr/lib/jvm/java-${VER_OPENJDK}-openjdk-amd64 \
    PATH="/usr/lib/jvm/java-11-openjdk-amd64/bin:/$PATH"

RUN set -e; \
    echo "-- Deploy jre11"; \
    mkdir -p ${JAVA_HOME}; \
    tar zxvf OpenJDK11U-jdk_x64_linux_openj9_11.0.10_9_openj9-0.24.0.tar.gz -C ${JAVA_HOME} ;

and I built the image but when exectuing the container by : docker exec -it id_container bash, and write inside the container the command $java -version, I got: "bash: java: command not found". I think I should add some commands in the container to fix the problem and then added them to the dockerfile.

Thank you for your help.

zigarn
  • 10,892
  • 2
  • 31
  • 45
MARKA
  • 1
  • 1
  • 1
  • Can you echo your `$PATH` from inside the container? And also check content of `/usr/lib/jvm/java-11-openjdk-amd64`? – zigarn Mar 27 '21 at 16:10
  • `root@927dab518950:/# cd /usr/lib/jvm/java-11-openjdk-amd64` `root@927dab518950:/usr/lib/jvm/java-11-openjdk-amd64# ls jdk-11.0.10+9` `root@927dab518950:/usr/lib/jvm/java-11-openjdk-amd64# cd jdk-11.0.10+9/` `root@927dab518950:/usr/lib/jvm/java-11-openjdk-amd64/jdk-11.0.10+9# ls` `bin conf include jmods legal lib man release` – MARKA Mar 27 '21 at 16:36
  • `root@927dab518950:/# $PATH` `bash: /usr/lib/jvm/java-11-openjdk-amd64/bin://usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin: No such file or directory` `root@927dab518950:/# printenv` `HOSTNAME=...` `JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64` `PWD=/` – MARKA Mar 27 '21 at 16:39
  • 1
    `PATH=/usr/lib/jvm/java-11-openjdk-amd64/bin://usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin` `_=/usr/bin/printenv` – MARKA Mar 27 '21 at 16:40
  • 1
    So you have your answer: your JAVA_HOME is wrong and should be `/usr/lib/jvm/java-11-openjdk-amd64/jdk-11.0.10+9` and you should also set PATH accordingly. – zigarn Mar 27 '21 at 19:25

1 Answers1

1

Please use the following official image is based on ubuntu.

docker pull adoptopenjdk/openjdk11