Dockerfile
使用官方Java镜像作为基础镜像
FROM openjdk:17-jdk-slim
设置环境变量
ENV JAVA_HOME="/usr/lib/jvm/java-17-openjdk-amd64 "
ENV PATH="/opt/apache-doris/fe/bin:$PATH"
更新软件包列表并安装MySQL客户端
RUN apt-get update &&
apt-get install -y default-mysql-client &&
apt-get clean &&
rm -rf /var/lib/apt/lists/*
下载软件至镜像内,可根据需要替换
#ADD ./resource/apache-doris-3.0.0-bin-x64.tar.gz /opt/
#RUN tar -xzf /opt/apache-doris-3.0.0-bin-x64.tar.gz -C /opt/ && \
mkdir -p /opt/apache-doris && \
mv /opt/apache-doris-3.0.0-bin-x64/fe /opt/apache-doris/fe
COPY ./resource/apache-doris-3.0.0-bin-x64.tar.gz /opt/
RUN tar -xzf /opt/apache-doris-3.0.0-bin-x64.tar.gz -C /opt/ &&
mkdir -p /opt/apache-doris &&
mv /opt/apache-doris-3.0.0-bin-x64/fe /opt/apache-doris/fe &&
rm -rf /opt/apache-doris-3.0.0-bin-x64.tar.gz
列出根目录和/opt目录下的文件
RUN ls -l /
RUN ls -l /opt/
添加初始化脚本
ADD ./resource/init_fe.sh /opt/apache-doris/fe/bin/init_fe.sh
RUN chmod 755 /opt/apache-doris/fe/bin/init_fe.sh
设置工作目录
WORKDIR /opt/apache-doris/fe
添加 JAVA_HOME 到 fe.conf 文件
RUN echo "JAVA_HOME=${JAVA_HOME}" >> /opt/apache-doris/fe/conf/fe.conf
启动Doris FE
ENTRYPOINT ["/opt/apache-doris/fe/bin/init_fe.sh"]
fe.conf也配置了JAVA_HOME
2024-10-29T12:44:11+00:00 [Note] [Entrypoint]: Ready to start CURRENT_FE!
The JAVA_HOME environment variable is not set correctly
This environment variable is required to run this program
Note: JAVA_HOME should point to a JDK and not a JRE
You can set JAVA_HOME in the fe.conf configuration file
root@a80c9f07dab0:/opt/apache-doris/fe# cd conf/
root@a80c9f07dab0:/opt/apache-doris/fe/conf# cat fe.conf
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
#####################################################################
The uppercase properties are read and exported by bin/start_fe.sh.
To see all Frontend configurations,
see fe/src/org/apache/doris/common/Config.java
#####################################################################
CUR_DATE=date +%Y%m%d-%H%M%S
Log dir
LOG_DIR = ${DORIS_HOME}/log
For jdk 8
JAVA_OPTS="-Djavax.security.auth.useSubjectCredsOnly=false -Xss4m -Xmx8192m -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:+PrintGCDateStamps -XX:+PrintGCDetails -Xloggc:$LOG_DIR/log/fe.gc.log.$CUR_DATE -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=50M -Dlog4j2.formatMsgNoLookups=true"
For jdk 17, this JAVA_OPTS will be used as default JVM options
JAVA_OPTS_FOR_JDK_17="-Djavax.security.auth.useSubjectCredsOnly=false -Xmx8192m -Xms8192m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$LOG_DIR -Xlog:gc*:$LOG_DIR/fe.gc.log.$CUR_DATE:time,uptime:filecount=10,filesize=50M --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens java.base/jdk.internal.ref=ALL-UNNAMED"
Set your own JAVA_HOME
JAVA_HOME=/path/to/jdk/
the lowercase properties are read by main program.
store metadata, must be created before start FE.
Default value is ${DORIS_HOME}/doris-meta
meta_dir = ${DORIS_HOME}/doris-meta
Default dirs to put jdbc drivers,default value is ${DORIS_HOME}/jdbc_drivers
jdbc_drivers_dir = ${DORIS_HOME}/jdbc_drivers
http_port = 8030
rpc_port = 9020
query_port = 9030
edit_log_port = 9010
arrow_flight_sql_port = -1
Choose one if there are more than one ip except loopback address.
Note that there should at most one ip match this list.
If no ip match this rule, will choose one randomly.
use CIDR format, e.g. 10.10.10.0/24 or IP format, e.g. 10.10.10.1
Default value is empty.
priority_networks = 10.10.10.0/24;192.168.0.0/16
Advanced configurations
log_roll_size_mb = 1024
INFO, WARN, ERROR, FATAL
sys_log_level = INFO
NORMAL, BRIEF, ASYNC
sys_log_mode = NORMAL
sys_log_roll_num = 10
sys_log_verbose_modules = org.apache.doris
audit_log_dir = $LOG_DIR
audit_log_modules = slow_query, query
audit_log_roll_num = 10
meta_delay_toleration_second = 10
qe_max_connection = 1024
qe_query_timeout_second = 300
qe_slow_log_ms = 5000
JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
root@a80c9f07dab0:/opt/apache-doris/fe/conf#