17. Talk about Elixir already!
elixir:base Dockerfile <development>
Dockerfile <production>
Use in local docker-compose.yml
Use in rancher-compose.yml
18. Same same. But different.
We build a production image:
● For production. Duh.
● To tag and add arguments for the
docker image. The image carries
additional information, such as
commit author, ticket number, log
tags, etc.
● Image contents are compiled. The
hex package here is distillery.
We build a development image
● For development. Duh.
● To have access to mix and the build
tools while developing
● For inclusion of the project in
dependent projects, in order to have
the ability to develop there.
● Image contents are not compiled, the
code is copied in and the build tools
come with the image
This is done for every commit. So for every commit there exists two images.
19. Docker Magic
Alpine Linux Image
bitwalker/elixir
elixir:base
project:image container: <commit-hash>
production
21. Deploy all the things
(quick recap)
1. Image content are a release built with
distillery.
2. All containers get deployed via shia
on rancher
3. Basic blue/green deployment of
containers
4. We deploy a full new version (ideally)
in zero downtime.