Show HN: Beluga 0.1 – Docker Deployment Tool
github.com
github.com
Freighter can handle multiple environment config files, environment var management, old image and container cleanup. Freighter uses Docker's REST API and therefore does not need ruby installed on the hosts, but it does need the REST API enabled to be accessible on 127.0.0.1. If you'd like to know more about Freighter reach me at @mrinterweb or ask your question here.
I've always found it hard to figure out where these type of tools are used in the stack.
Is it used on the dev environments??
If you already have a docker-compose project, you could write a belugafile and then just do beluga --deploy and it'll build and deploy it to your remote server. Assuming that you already have docker and docker compose on the remote machine.
It's neat that beluga is written predominantly in bash but it's also difficult to see what Beluga actually does. Right now it looks like it sets up an environment for a docker compose app to run. Similar to docker machine but also solvable by tools like ansible, salt or python fabric. Kubernetes and Mesos are solving different problems. They manage and orchestrate services and add ons may also help with repository management.
My view may come from a lack of understanding of the tool's primary use case. Deeply interested in new developments in the docker ecosystem. Could you please update your current documentation with a few examples.
The whole goal of beluga is to take your docker-compose project from your machine to a remote host and have it running.
It's meant to be used with the existing docker-machine & docker-compose tools and shouldn't interfere with any internal docker apis.
Beluga was originally written in bash as we didn't want to impose runtime dependencies. Bash is usually pretty much available everywhere expect bsd.
It also accounts the fact that if you have to deploy to multiple machines you won't have to rebuild your project everywhere as it can push and pull the images from either dockerhub or your own self hosted docker registry (either https://github.com/docker/docker-registry or https://github.com/docker/distribution).
Here's a link to a sample node.js project that is deployed with beluga. https://github.com/cortexmedia/Beluga-SampleProject-Nodejs
It's pretty much a standard docker-machine & docker-compose project but with an additonal file.
ref.: https://docs.saltstack.com/en/latest/ref/states/all/salt.sta...
So it builds images, then pushes them to a remote repo, then pulls them from SSH? Is it pulling updates? Is it a daemon that keeps your containers up to date?
When you want to deploy a docker app you have to do the following step manually :
1. Build the docker images on your machine.
2. Tag them to the repository you want to push to (either private or dockerhub)
3. Upload them to the image repository
4. Connect to the remote servers and pull the new images.
5. Unlink and stop the running containers
6. Start the new containers.
All these steps are automated with 2 commands on beluga :
beluga --build does the steps 1, 2 and 3.
beluga --deploy does the steps 4,5 and 6.