I am quite new to Elixir and want to deploy my Elixir app in production. But there aren’t too many examples of how to deploy an OTP app. Does anyone have any good guides or example Dockerfiles to help? Keep in mind this is not a Phoenix app, just a vanilla Elixir app that uses Supervisor to launch a few children.
The second thread that @AstonJ mentioned has a link to a super blog post on Dockerizing Elixir and Phoenix Apps. That is largely what I followed when deploying ibGib, and I journaled the whole process in my Deploy 0.1.0 GitHub issue. And you can always ask any specific questions here on the forum or in slack if you hit a wall.
As an aside, I am not sure that it being a non-Phoenix app would make a big difference. I think you would still basically need to create a release and deploy the Docker container. The main difference being that you wouldn’t necessarily need to do the Phoenix-specific things like configuring the endpoint, http/s ports, etc.
Hi, I’ve had much luck using Distillery and Docker for the deployment of my Phoenix API project. I think it wouldn’t matter if your app is Phoenix or not, as long as it can be bundled into an OTP release.
Here’s my production Dockerfile. I used alpine linux for optimizing the image size (my app image weighs only 41.34 MB, would be over ~700 I think if I used ubuntu as the base image). It works perfectly so far.