miquecg / elixir-ide

Elixir development environment focused on terminal workflow (vim + tmux) that runs on a container

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

elixir-ide

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)

Container characteristics

  • Arch Linux based
  • Includes all necessary tools for development
  • Codebase shared by host (bind mount)

Project guidelines

  • 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

Usage example

$ 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.

Actions on the host

Rootless containers

Users running them will need a range of UIDs listed in /etc/subuid and /etc/subgid files.

More information:

Powerline Symbols on terminal

Fancy Oh My Zsh themes customize the terminal prompt with these symbols, so a patched font must be installed to see them.

About

Elixir development environment focused on terminal workflow (vim + tmux) that runs on a container

License:MIT License


Languages

Language:Dockerfile 55.0%Language:Shell 45.0%