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
我在 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