blimp
blimp copied to clipboard
Add support for `docker-compose run`
Is your feature request related to a problem? Please describe.
We have many environment initialization routines implemented inside the docker image and run with compose (e.g. docker-compose run backend load_db
). In order to completely replace docker-compose
with blimp
, it would be nice that blimp
supports that syntax and behaviour.
Describe the solution you'd like
Be able to blimp run backend load_db
(with or without support for the other parameters).
Additional context
$ blimp run backend load_db
unknown command "run" for "blimp"
Did you mean this?
up
PS: I just found this project and looks really promising. Thanks!
Hi @Laski! We don't expect to add blimp run
soon unfortunately since we're not working on it full time anymore.
However, we have had some teams simulate docker-compose run
with blimp exec
. The basic pattern is to create a dummy version of the container for blimp to boot, and then exec into it to run commands.
E.g.
services:
backend:
image: backend-image
# This makes it so the container starts, making it available for `blimp exec`, but its command just makes it wait forever.
command: tail -f /dev/null
Then once you blimp up
, you can run blimp exec backend load_db
.
Hope that helps!
Thanks @kklin! Yeah, it seems the best workaround until this is implemented :sweat_smile: . Sad to hear the project is not being worked on, it seems so promising. Which dir/files do you think I can read in order to have an idea of how to implement this myself? If I find the time I'd love to help.
You'd implement this modifying the RPC between the CLI, and the cluster component that deploys containers into the Kubernetes cluster: https://github.com/kelda/blimp/blob/master/_proto/blimp/cluster/v0/manager.proto
For example, the code for deploying pods when you run blimp up
is here: https://github.com/kelda/blimp/blob/master/cluster-controller/main.go#L500
The thing I'm not sure about is what the UX would be of the containers created by blimp run
. Should they get removed if you do blimp up
after? If not, how would you remove them?