Status: Experimental developer tooling. This Dockerfile is not officially supported.
This image provides the Java 17, Maven 3.9.8, and Thrift 0.24.0 toolchain used to build Parquet-Java. It deliberately does not copy project sources into the image: mount the checkout you are actively editing at /workspace.
From the repository root, run:
docker build --tag parquet-java-dev --file dev/docker/Dockerfile dev/dockerVerify the container's Thrift compiler:
docker run --rm parquet-java-dev thrift -versionStart an interactive shell with the current checkout and a persistent Maven dependency cache:
docker run --rm --init --interactive --tty \
--mount "type=bind,src=$PWD,dst=/workspace" \
--mount type=volume,src=parquet-java-m2,dst=/home/parquet/.m2 \
parquet-java-devBuild and test the local checkout without opening a shell:
docker run --rm --init \
--mount "type=bind,src=$PWD,dst=/workspace" \
--mount type=volume,src=parquet-java-m2,dst=/home/parquet/.m2 \
parquet-java-dev \
./mvnw --batch-mode testThe full suite includes a test that writes a 4 GiB row group. Configure Docker with at least 8 GiB of memory; the image gives JVM processes a 6 GiB maximum heap by default. Override that setting when needed with --env JAVA_TOOL_OPTIONS=-Xmx<heap-size>.
The commands above use the persistent parquet-java-m2 Docker volume. To reuse the local Maven repository instead, replace its volume mount with:
--mount "type=bind,src=$HOME/.m2,dst=/home/parquet/.m2"