gradle-docker-compose-plugin
services-flake
gradle-docker-compose-plugin | services-flake | |
---|---|---|
1 | 1 | |
402 | 194 | |
0.0% | 20.6% | |
6.3 | 9.2 | |
6 days ago | 8 days ago | |
Groovy | Nix | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
gradle-docker-compose-plugin
-
Testcontainers
Something that improved developer experience by far and also sped up our builds is starting the container dependencies via docker-compose and connect to it for integration testing. This allows reuse of containers, you can connect to it after/during an integration test to debug without having to keep searching for ports constantly.
With TestContainers - I've perceived that running integration tests / a single test repeatedly locally is extremely slow as the containers are shut down when the java process is killed. This approach allows for this while also allowing to keep it consistent - example, just mount the migrations folder in the start volume of your DB container and you have a like-for-like schema of your prod DB ready for integration tests.
I've found the https://github.com/avast/gradle-docker-compose-plugin/ very useful for this.
services-flake
-
Testcontainers
If your project uses Nix, checkout services-flake for running services via Nix.
https://github.com/juspay/services-flake
We actually do this in Nammayatri, an OSS project providing "Uber" for autos in India.
https://github.com/nammayatri/nammayatri
There is a services-flake module allowing you to spin the entire nammayatri stack (including postgres, redis, etc.) using a flake app. Similarly, there's one for running load test, which is also run in Jenkins CI.
What are some alternatives?
otj-pg-embedded - Java embedded PostgreSQL component for testing
embedded-postgres-binaries - Lightweight bundles of PostgreSQL binaries with reduced size intended for testing purposes.
phoenix_container_example - Production-quality example for Elixir/Phoenix building, testing, and running in containers
nammayatri - A Direct-to-Driver open mobility platform powering the next-generation of mobility applications in India.
latte - Latte is a modern data engineering toolkit.
dockertest - Write better integration tests! Dockertest helps you boot up ephermal docker images for your Go tests with minimal work.
testcontainers-node - Testcontainers is a NodeJS library that supports tests, providing lightweight, throwaway instances of common databases, Selenium web browsers, or anything else that can run in a Docker container.
pglite - Lightweight Postgres packaged as WASM into a TypeScript library for the browser, Node.js, Bun and Deno
dagger - Application Delivery as Code that Runs Anywhere