This project is an experiment to run a multi-application Elixir cluster on top of Docker, Docker-Compose and Docker Swarm. Vagrant virtual machines are used to simulate a production environment. Production containers run on Alpine and are built using multi-stage Dockerfiles and Distillery to be as lightweight as possible.
It also provides a development Docker-Compose environment with watchers.
This project is composed of two separate apps:
chat
, a Phoenix application using Phoenix Channels.chat_backend
, a GenServer holding the state of the chat application in memory.
By keeping the stateful concerns on a separate application part of the same cluster, we can achieve continuous blue-green deployments on stateless applications with little overhead.
TODO
docker-compose up
You can access the web app at http://localhost:4000
.
TODO