Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

README.md

Parquet developer container

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.

Build the image

From the repository root, run:

docker build --tag parquet-java-dev --file dev/docker/Dockerfile dev/docker

Verify the container's Thrift compiler:

docker run --rm parquet-java-dev thrift -version

Work in the container

Start 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-dev

Build 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 test

The 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>.

Reuse the host Maven cache

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"