This directory contains the Docker setup for the apache/fluss-quickstart-flink image used by the Fluss quickstart guides.
The image now separates dependencies into three clearly defined groups:
lib/: base Fluss quickstart dependencies copied directly into FLINK_HOME/libpaimon/: optional Paimon lakehouse dependencies activated by /opt/flink/init_paimon.shiceberg/: optional Iceberg lakehouse dependencies activated by /opt/flink/init_iceberg.shThis split keeps the regular “Quickstart with Flink” flow working out of the box while still allowing the Paimon and Iceberg lakehouse guides to opt in to their extra jars explicitly.
The optional lakehouse directories include the Flink-side filesystem and catalog jars needed by those guides. For example:
paimon/ includes paimon-flink-1.20-1.3.1, paimon-s3-1.3.1, and hadoop-apacheiceberg/ includes iceberg-flink-runtime, hadoop-apache, iceberg-aws, iceberg-aws-bundle, and postgresql/opt/flink/init_paimon.sh before starting Flink./opt/flink/init_iceberg.sh before starting Flink./opt/sql-client/sql-client helper is only for the “Real-Time Analytics with Flink” quickstart and preloads demo SQL objects from sql/sql-client.sql.Before building the Docker image, ensure you have:
./mvnw clean package -DskipTests. The local build artifacts will be used for the Docker image.The build process consists of two main steps:
First, prepare the required base and optional dependency directories:
# Make the script executable chmod +x prepare_build.sh # Run the preparation script ./prepare_build.sh
After the preparation is complete, build the Docker image:
# Build the Docker image docker build -t apache/fluss-quickstart-flink .
After prepare_build.sh finishes, verify that the following directories exist:
lib/paimon/iceberg/opt/If you are wiring the image into Docker Compose:
command: ["/opt/sql-client/sql-client"] for SQL clients that should preload the demo source tablesentrypoint: ["/opt/flink/init_paimon.sh"] for Paimon servicesentrypoint: ["/opt/flink/init_iceberg.sh"] for Iceberg services