#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. Я пробовал, но это все еще не работает