Docker fedora hbase JAVA_HOME 问题

Docker fedora hbase JAVA_HOME issue

我在 fedora 22 上的 dockerfile

FROM java:latest

ENV HBASE_VERSION=1.1.0.1

RUN groupadd -r hbase && useradd -m -r -g hbase hbase

USER hbase
ENV HOME=/home/hbase
# Download'n extract hbase
RUN cd /home/hbase && \
    wget -O - -q \
    http://apache.mesi.com.ar/hbase/${HBASE_VERSION}/hbase-${HBASE_VERSION}-bin.tar.gz \
    | tar --strip-components=1 -zxf -

# Upload local configuration
ADD ./conf/ /home/hbase/conf/
USER root
RUN chown -R hbase:hbase /home/hbase/conf
USER hbase

# Prepare data volumes
RUN mkdir /home/hbase/data
RUN mkdir /home/hbase/logs

VOLUME /home/hbase/data
VOLUME /home/hbase/logs

# zookeeper
EXPOSE 2181
# HBase Master API port
EXPOSE 60000
# HBase Master Web UI
EXPOSE 60010
# Regionserver API port
EXPOSE 60020
# HBase Regionserver web UI
EXPOSE 60030

WORKDIR /home/hbase
CMD /home/hbase/bin/hbase master start

据我了解,当我设置 "FROM java:latest" 时,我当前的 dockerfile 覆盖在那个文件上,所以 JAVA_HOME 必须像 java:latest 中那样设置?我对吗?这个 Dockerfile 已构建,但是当我 "docker run" 图像时,它显示 "JAVA_HOME not found" 错误。如何正确设置?

使用 ENV 指令,类似于 ENV JAVA_HOME /abc/def 文档 https://docs.docker.com/reference/builder/#env

添加到 ~./bashrc(或全局 /etc/bashrc:

export JAVA_HOME=/usr/java/default
export PATH=$JAVA_HOME/bin:$PATH