Skip to content

Conversation

@ikyrannas
Copy link

Summary

This PR adds a production-ready Docker build for LST-Bench and documentation to streamline local usage and Docker Hub publishing. It also introduces a Makefile that builds/pushes per-profile images so the correct JDBC drivers are included.

Changes

  • Add multi-stage Dockerfile with non-root runtime and optional Maven profile support (MAVEN_PROFILES).
  • Add .dockerignore to keep build context lean.
  • Add Makefile with build-<profile>/push-<profile> targets and build-all/push-all.
  • Update README.md with Docker build/run instructions and Spark Thrift example.

Motivation / Context

Running LST-Bench from Docker makes it easier to:

  • Standardize environments across machines.
  • Ship the right JDBC driver set per engine.
    These changes reduce setup time.

How to Test

Dockerhub image

I have already built and pushed the image to my Dockerhub repo for convenience.

  1. Run with your configs:
docker run --rm \
  -v "$PWD/config":/work/config:ro \
  ikyrannas/lst-bench:spark-jdbc \
  -c /work/config/connections.yaml \
  -e /work/config/experiment.yaml \
  -l /work/config/library.yaml \
  -t /work/config/telemetry.yaml \
  -w /work/config/workload.yaml

Local build

  1. Build a profile image:
docker build -t lst-bench:spark-jdbc --build-arg MAVEN_PROFILES=spark-jdbc .
  1. Run with your configs:
docker run --rm \
  -v "$PWD/config":/work/config:ro \
  lst-bench:spark-jdbc \
  -c /work/config/connections.yaml \
  -e /work/config/experiment.yaml \
  -l /work/config/library.yaml \
  -t /work/config/telemetry.yaml \
  -w /work/config/workload.yaml

Notes

  • The Makefile provides per-profile tags (e.g., spark-jdbc, trino-jdbc, etc.) to ensure the correct JDBC driver set is included.

Checklist

  • README updated
  • No breaking changes
  • Tests not required / not applicable for README & build tooling

@ikyrannas
Copy link
Author

@microsoft-github-policy-service agree

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant