Files
doris/docker
GabrielandMingyu Chen 4a54c47c4e [fix](regression) Backport external and Kerberos fixes to branch-4.1 (#68150, #66433) (#68869)
Backport #68150 and #66433 to branch-4.1.

Trino startup/query failures and unfinished HDFS Broker Load jobs could
appear as empty-result mismatches. Kerberized HDFS clients lacked the
DataNode SASL setting, and the lightweight Kerberos metastore lacked the
Paimon fixture. Iceberg metadata write failures could expose only a
self-suppression wrapper.

This backport adds bounded readiness/load checks with failure
diagnostics, configures HDFS transfer protection, restores the Paimon
fixture before the Kerberos readiness marker, and reports the root cause
of failed Iceberg metadata commits.

Branch adaptation: branch-4.1 uses `IcebergMetadataOps`, so the
root-cause changes are applied to its create-table, schema-update, and
branch/tag commit paths. Its partition-spec update helper already
reports root causes. The newer connector implementation is not
introduced.

Validation:
- FE Checkstyle passes: `mvn -pl fe-core -am checkstyle:check`.
- All six changed suites compile with Groovy 4.0.19.
- Eight local control-flow scenarios pass for Trino readiness/query
errors and Broker Load completion/cancellation/timeouts.
- Shell syntax, Kerberos settings isolation, both container role/switch
combinations, env/config rendering, and rendered XML checks pass.
- An isolated harness compiles the actual adapted
create-table/schema-commit methods with stubbed dependencies: the
original masks the storage failure, while the backport preserves the
root message, operation context, and exception cause.
- `git diff --check` passes. Full FE build and external integration runs
remain pending CI.

Release note: Improved external regression setup and diagnostics;
Iceberg metadata commit errors now expose the underlying cause.

Co-authored-by: Mingyu Chen (Rayner) <morningman.cmy@gmail.com>
2026-10-10 18:32:58 +08:00
..
…

Doris Develop Environment based on docker

Preparation

  1. Download the Doris code repo

    $ cd /to/your/workspace/
    $ git clone https://github.com/apache/doris.git
    $ cd doris
    $ git submodule update --init --recursive
    

    You can remove the .git dir in doris/ to make the dir size smaller. So that the following generated docker image can be smaller.

  2. Copy Dockerfile

    $ cd /to/your/workspace/
    $ cp doris/docker/Dockerfile ./
    

After preparation, your workspace should like this:

.
├── Dockerfile
├── doris
│   ├── be
│   ├── bin
│   ├── build.sh
│   ├── conf
│   ├── DISCLAIMER-WIP
│   ├── docker
│   ├── docs
│   ├── env.sh
│   ├── fe
│   ├── ...

Build docker image

$ cd /to/your/workspace/
$ docker build -t doris:v1.0  .

doris is docker image repository name and v1.0 is tag name, you can change them to whatever you like.

Use docker image

This docker image you just built does not contain Doris source code repo. You need to download it first and map it to the container. (You can just use the one you used to build this image before)

$ docker run -it -v /your/local/path/doris/:/root/doris/ doris:v1.0
$ docker run -it -v /your/local/.m2:/root/.m2 -v /your/local/doris-DORIS-x.x.x-release/:/root/doris-DORIS-x.x.x-release/ doris:v1.0

Then you can build source code inside the container.

$ cd /root/doris/
$ sh build.sh

NOTICE

The default JDK version is openjdk 11, if you want to use openjdk 8, you can run the command:

$ alternatives --set java java-1.8.0-openjdk.x86_64
$ alternatives --set javac java-1.8.0-openjdk.x86_64
$ export JAVA_HOME=/usr/lib/jvm/java-1.8.0

The version of jdk you used to run FE must be the same version you used to compile FE.

Latest update time

2022-1-23