langdock es un manejador de versiones de múltiples lenguajes, que utiliza como principal tecnología Docker, haciendo uso de Dockerhub
langdock fue inspirado y sigue el modelo de rbenv, goenv y pyenv
- Clonar el repositorio en ~/.langdock
$ git clone [email protected]:lucasdc6/langdock.git ~/.langdock
- Agregar la variable de ambiente y el directorio ~/.langdock/bin para contar con todos los ejecutables
$ echo 'export LANGDOCKPATH=$HOME/.langdock' >> ~/.bash_profile
$ echo 'export PATH="$HOME/.langdock/bin:$PATH"' >> ~/.bash_profile
- Agregar la sentencia eval al bashrc
$ echo 'eval "$(langdock init -)' >> ~/.bash_profile
En Ubuntu modificar ~/.bashrc
En Zsh modificar ~/.zshrc
- Reiniciar la terminar para efectuar los cambios.
Funcionalidades actuales:
- Setear versión global
- Setear versión local
- Instalar una versión (docker pull de los repositorios dados)
- Listar versiones instaladas
- Listar opciones disponibles para bajar de los repositorios
Además se cuenta con 3 opciones para el manejo de los repositorios docker:
- Listar repositorios
- Agregar repositorio
- Eliminar repositorio
Para el manejo de los repositorios, se cuenta con un archivo de configuración
disponible en el directorio etc/<nombre del lengauge>
, llamado repositories.
En este archivo se cuenta con una lista de repositorios separados por saltos de líneas.
Se recomieda no editar este archivo a mano.
$ langdock repositories --add <NOMBRE DEL REPOSITORIO>
Por ejemplo, para agregar el repositorio oficial de php, solo hace falta
ejecutar:
$ langdock repositories --add php
Este script NO instala ningún binario el sistema, sino que simplemente baja la imagen docker del repositorio especificado.
Variable | Descripción |
---|---|
LANGDOCK_DEBUG |
Muestra información de debug |
LANGDOCKPATH |
Dirección raíz del programa langdock |
- Archivo modificado por el comando
langdock global <version>
- Guardado en
$LANGDOCKPATH/etc/<lenguaje>/version
- Baja precedencia.
- Archivo modificado por el comando
langdock local <version>
- Guardado en el contexto de ejecución del comando
- Media precedencia.
- Manejado mediante variables de ambiente por el comando
langdock shell <version>
-Alta precedencia.
Si bien langdock no instala versiones de php, sino que clona imágenes docker y las acondiciona de manera que sea transparente su uso para el programador, vamos a referirnos a la acción de clonar dichas imágenes como instalación.
Existen 2 maneras de instalar una nueva versión:
La manera manual de instalar una nueva versión es la siguiente:
-
Primero se debe conocer el repositorio y la versión (tag de docker) de la imagen a instalar.
Para esto se puede consultar el comando "install" con la opción "--list":
langdock install --list # lista de versiones
-
Una vez reconocido el nombre y versión de la imagen, se debe simplemente especificarlo de la siguiente manera: Por ejemplo, vamos a instalar la versión 7.1.9 del repositorio docker oficial de php.
langdock install php:7.1.9
Si se conoce la versión del lengauje se se va a utilizar en el proyecto de antemano, se puede crear un archivo llamado ".-version", en el cual se especifique dicha versión, para facilitar la búsqueda de la imagen docker ideal para su proyecto.
Una vez creado el archivo, simplemente hace falta ejecutar el comando "install" de langdock sin ningún argumento, de la siguiente manera:
langdock install
Con esto, se desplazará un menú con todas las imágenes docker de los repositorios que cumplan con dicha versión. Una vez escrito el número y presionado enter, comenzara el proceso de pull de la imagen docker.