Skip to content

matthewoden/alpine-elixir

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

90 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Elixir on Alpine Linux (ARM-32-v6)

This Dockerfile provides a full installation of Erlang and Elixir on Alpine, intended for running releases, so it has no build tools installed. The Erlang installation is provided so one can avoid cross-compiling releases. The caveat of course is if one has NIFs which require a native compilation toolchain, but that is left as an exercise for the reader.

Usage

NOTE: This image sets up a default user, with home set to /opt/app and owned by that user. The working directory is also set to $HOME. It is highly recommended that you add a USER default instruction to the end of your Dockerfile so that your app runs in a non-elevated context.

To boot straight to a prompt in the image:

$ docker run --rm -it --user=root matthewoden/alpine-arm32v6-elixir iex
Erlang/OTP 22 [erts-10.3] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:10] [hipe] [kernel-poll:false]

Interactive Elixir (1.9.1) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)>

Extending for your own application:

FROM matthewoden/alpine-arm32v6-elixir:1.9.1

# Set exposed port
EXPOSE 5000
ENV PORT=5000

ENV MIX_ENV=prod

COPY yourapp.tar.gz ./
RUN tar -xzvf yourapp.tar.gz

USER default

CMD ./bin/yourapp foreground

License

MIT

About

A Dockerfile based on my alpine-ARMv6-32-erlang image. Meant for dockerized Elixir releases on Raspberry Pis

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Makefile 55.8%
  • Dockerfile 44.2%