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#