Variables de entorno por carpeta de proyecto

Tenemos un proyecto que necesitamos que tenga una serie de variables de entorno. En producción no hay problema, porque cada máquina es específica para cda proyecto y tiene sus varaibles de entorno. Pero en el entorno de desarrollo podemos tener más de un proyecto en marcha y puede que ciertas variables se repitan o pisen entre proyectos. Entonces lo que necesitamos son variables de entorno por proyecto.

Una solución maravillosamente sencilla es tener un fichero de variables de entorno que se cargue al entrar en esa carpeta. Tendrá el mismo formato que nuestro clásico .bashrc. Para ello habrá que instalar el programa direnv (y que se cargue en nuestro .bashrc).

sudo apt-get install direnv && echo "eval "$(direnv hook bash)"" >> ~/.bashrc

Y en la carpeta raíz de cada proyecto tener un fichero .envrc con las variables de entorno que necesitamos.

.gitignore global

Por limpieza, lo ideal es que este (y otros ficheros propios de nuestra máquina de desarrollo) no estén ensuciando el .gitignore particular de cada proyecto. Así que para ignorar este fichero particular del control de versiones para cada proyecto (pero solo de nuestra máquina), en lugar de ignorarlo a nivel de proyecto podemos ignorarlos a nivel global. Para ello usaremos el comando:

git config --global core.excludesfile ~/.gitignore

Al añadir un fichero .gitignore a nuestra carpeta de usuario y añadir los ficheros «.envrc».

Bola Extra: dotenv

Idealmente, en muchos proyectos javascript utilizo dotenv. Una librería que añade variables de entorno en tiempo de ejecución. Si tu proyecto no es javascript o no usa dotenv, aquí tienes otra solución.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *