I prefer to avoid installing dev tools on my laptop. I used to create a separate Vagrant instance for each project, but using Docker should provide a lighter weight alternative.
Assuming you already have the Docker tooling installed, the first thing to do is download the base container:
docker pull erlang
Next, download the latest rebar3 binary:
curl -OL https://s3.amazonaws.com/rebar3/rebar3 && chmod +x ./rebar3
At this point, you’re ready to create the app skeleton:
docker run --name $APP_NAME -it --rm -v ${PWD}:/app -w /app erlang ./rebar3 new app $APP_NAME
Annoyingly, rebar assumes that it should create the folder for the project, so you’ll need to move all the generated files up a level (or put up with an extra subdir). Also, the generated files are owned by root, so you probably want to chown the entire dir.
If you’re going to use any rebar plugins, you probably want to put it’s cache dir somewhere that will survive container restarts. Add this to your rebar.config:
{global_rebar_dir, "/app/.cache"}.
And then you can compile your app:
docker run --name $APP_NAME -it --rm -v ${PWD}:/app -w /app -e REBAR_CACHE_DIR=/app erlang ./rebar3 compile