Docker + aliases: I don’t install tools on my Mac

I really care about keeping the OS clean and untouched. Sometimes, when I have to develop using specific softwares and tools, I have to modify core and important sections of the system on my Mac or PC, and this can create some problems with package managers (like homebrew for Mac OS X; or like APT, pacman or yum for GNU/Linux)…

Docker Icon black and white

For example, few months ago I installed node.js on my Mac using the official package. When I started using homebrew, I had problems with the command line and the configuration. I even had the same problem when I was not using a virtual environment with Python 2.7 and 3.4… So I was forced to fix all the files/links manually with the super user… and I don’t like that: it is like corrupting my OS…

Few years ago, I was using chroot and virtual environments, and it was really painful to configure and setup, losing time that I could spend to do other things, like watching videos of kittens.

Now instead I use Docker to set-up containers with the tool/comand I need without big pain (Except the first download of the appropriate container that is taking some minutes). Now, for example, to use NodeJS I use this command:

docker run -it --rm -v $(pwd):/pwd -w /pwd node node

With this command, I will create a temporary docker container, mounting the current directory into /pwd and running the command node from that directory… but it is not enough. I usually prefer to replace node bash command with the “docker” one. To do so I added this line at the bottom of the file in ~/.bash_profile to create an alias:

alias node="docker run -it --rm -v `pwd`:/pwd -w /pwd node node"

I’ve found really useful. During the initial run if not present Docker will download the image required, and after that it will be really fast. I have done the same for npm and coffeescript noticing how much this could help me to work and maintain several environments without big problems.

For this reason, I’ve created a new repository on GitHub to collect all my aliases based on the tools I am using… and if you are using already something like that, please help me to share it with a pull request! 🙂

Published by

koalalorenzo

More info: http://who.is.lorenzo.setale.me/?