I’ve often been able to alias drun='docker compose run --rm --build'
and simplify down to:
drun test
Should be able to encode all those wayward args into docker-compose.yml
or Dockerfile
and only use vanilla docker commands – that’s the whole point of containerization
The env file is the weirdest part, the container itself has a required environment variable and if I don’t pass it in command line (only have it in the test compose file) the base compose fails because it has no port.
Most of the other commands are to merge the compose files so I can keep my base compose file clean!
Simpler to keep everything in one compose file if you can, under a test
service that doesn’t build unless explicitly named
Un-weird that env var and use the normal, boring feature of defining environment
under your test
service
The variable is already in the environment, it just doesn’t have a default because it’s required for each container
Looks like another make. What are the differences though…
Here’s their FAQ answer for that: https://just.systems/man/en/what-are-the-idiosyncrasies-of-make-that-just-avoids.html
I imagine, there’s various smaller differences in how the recipes are defined, but yeah, this is the big one.
I find that Just feels a lot like just a collection of script files, with built-in error handling for argument parsing and during execution. And it also offers easier discovery of available tasks and how to use them.
Yes! It reminds me a bit of python’s click library but for bash
I’m just gonna put this little bad boy into my stash of interesting libraries… Here we go. 😖