This project is an attempt to create a portable Elixir development environment distributed as a container image and based on terminal tools for coding. It's mostly an excuse to learn on automation and Ansible in particular.
Inspiration came from a blog post in Medium.
Docker as an Integrated Development Environment
Building a portable IDE to run anywhere (as long as you’ve got Docker)
- Arch Linux based
- Includes all necessary tools for development
- Codebase shared by host (bind mount)
- Build a container image in a CI environment
- Use buildah to create the image
- Store it on a Docker Hub repository
- Automate the whole process with Ansible
$ podman run -it --userns keep-id -v ~/Projects:/home/devel/Projects elixir-ide
keep-id: creates a user namespace where the current rootless user's UID:GID are mapped to the same values in the container. This option is ignored for containers created by the root user.
Users running them will need a range of UIDs listed in /etc/subuid
and /etc/subgid
files.
More information:
- https://www.redhat.com/sysadmin/rootless-podman-makes-sense
- https://docs.docker.com/engine/security/userns-remap/
Fancy Oh My Zsh themes customize the terminal prompt with these symbols, so a patched font must be installed to see them.