Получение «Такого файла или каталога нет» для установки java при попытке создать образ докера hbase

#java #linux #docker #dockerfile #hbase

Вопрос:

Я пытаюсь закрепить настройку hbase на экземпляре devcloud, но при попытке запустить файл я получаю эту ошибку start-hbase.sh

 /hbase-2.4.7/bin/hbase: line 794: /jdk1.8.0_281/bin/java: No such file or directory  /hbase-2.4.7/bin/hbase: line 794: /jdk1.8.0_281/bin/java: No such file or directory  

Я проверил и увидел, что путь доступен, поэтому я не уверен, почему я получаю эту ошибку.

Ниже приведено содержимое моего файла Dockerfile:

 FROM alpine:3.8  USER root  RUN passwd -u root  RUN apk update   amp;amp; apk add ca-certificates wget   amp;amp; update-ca-certificates # This line may not do anything # unlock root  RUN apk add bash  RUN wget --no-cookies --no-check-certificate --header "Cookie: oraclelicense=accept-securebackup-cookie" https://javadl.oracle.com/webapps/download/GetFile/1.8.0_281-b09/89d678f2be164786b292527658ca1605/linux-i586/jdk-8u281-linux-x64.tar.gz  RUN tar -xvf jdk-8u281-linux-x64.tar.gz   ENV JAVA_HOME jdk1.8.0_281  ENV PATH $PATH:$JAVA_HOME/bin  # Install Apache HBase ENV HBASE_VER 2.4.7  RUN wget https://dlcdn.apache.org/hbase/2.4.7/hbase-2.4.7-bin.tar.gz  RUN tar -xvf hbase-2.4.7-bin.tar.gz  RUN "./hbase-2.4.7/bin/start-hbase.sh"  

Комментарии:

1. /jdk1.8.0_281/bin/java «Я видел, что путь свободен» — правда? Действительно jdk1.8.0_281 ли папка находится в корне?

2. Да, я попытался записать компакт /jdk1.8.0_281/bin/ -диск и перечислить содержимое, и я действительно увидел папку java

Ответ №1:

Вам лучше определить рабочий каталог для вашего основного прикладного уровня, которым в данном случае является HBase, и разделить ваши зависимости в явно определенных абсолютных путях.

В частности, вы должны скопировать JDK извлеченную папку в абсолютный путь:

 RUN tar -xvf jdk-8u281-linux-x64.tar.gz  RUN mv ./jdk1.8.0_281 /usr/lib/jvm/  ENV JAVA_HOME /usr/lib/jvm/jdk1.8.0_281  ENV PATH $PATH:$JAVA_HOME/bin  

Комментарии:

1. Я пробовал, но это все еще не работает