- Notifications
You must be signed in to change notification settings - Fork10
Quickly get started developing clustered Elixir applications for cloud environments.
CrowdHailer/elixir-on-docker
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Quickly get started developing clustered Elixir applications for cloud environments.
See a walkthrough of developing a chat application from this template
This project template provides a set of sensible defaults for a new application designed to be cloud native.It includes:
- A main service
www
, this serves the main content offered by your application. - Secure HTTP/2 content delivery withAce web server.
- Code reloading in development environment usingExSync.
- Automatic clustering. Setup fordocker-cloud other environments coming soon.
- Web based metrics, monitoring and observing withWobserver.
- Documentation driven development withRaxx.ApiBlueprint.
- Integration test suit running from the
integration
service.
To use this template docker and docker-compose need to be installed on your machine.
Change project-name to your projects name.
git clone <url> <project-name>cd <project-name>
Delete git history.
rm -r .git
docker-compose run --rm www mix deps.get
All mix tasks for a service can be run this way, such as tests for a single service.
docker-compose up
Use-d
to run in the background.Use--build
to ensure images are rebuilt.Usedocker-compose down
to stop all services.
- HTTP endpoint available at:http://localhost:8080/
- HTTPs endpoint available at:https://localhost:8443/
- Wobserver dashboard available at:http://localhost:4001/
docker-compose \-f docker-compose.yml \-f docker-compose-test.yml \run integration /bin/bash -c "mix deps.get; mix test"
The-f
flag specifies a compose file to use when starting services.
docker ps# Find container-id to attach to.dockerexec -it<container-id> sh bin/debug# in iex shelliex(debug@<hostname>)1> Node.connect(:"app@<hostname>")
About
Quickly get started developing clustered Elixir applications for cloud environments.