Hi.
We just started using salt, and it's clearly a very powerful tool with very few limitations, if any, in its ability to manage systems.
Our use case is mostly system configuration management(like ensuring users, files, directories exist), but I'm interested in its usefulness in application deployment.
Currently, we're using docker and docker-compose to build and deploy (mostly) python applications.
We're moving towards a microservice-style architecture, so we'll have more and more such applications to deploy and manage.
So we use docker-compose to build and deploy groups of services. That works pretty well.
However, we might also start using docker stack for deployment. docker stack doesn't deal with the build process, only the deployment, and expects images for all services to already be built and available.
So I guess we would still keep using docker-compose for building our images, since I prefer using declarative yaml configuration files to a bunch of cli flags in a bash script.
But I'm also thinking about alternatives to docker-compose for that purpose(for various reasons). I'm wondering if salt could be useful in that problem domain.
So I know there are state modules like
docker_image and modules like
dockermod and
dockerng, but they don't seem to expose all features of the docker build system. Like labels, build args(in the case of the docker_image state).
So I guess my question is, what are people's opinion about using salt for the purpose of building docker images? Are there any useful patterns I should know about, or resources someone can point me to? Or does anyone have a suggestion for a tool that better fits that purpose?
Thanks all!