phpdock es un manejador de versiones de php, que utiliza como principal tecnología Docker, haciendo uso del repositorio oficial de php en Docker Hub.
phpdock fue inspirado y sigue el modelo de rbenv, goenv y pyenv
- Clonar el repositorio en ~/.phpdock
$ git clone [email protected]:lucasdc6/phpdock.git ~/.phpdock
- Agregar la variable de ambiente y el directorio ~/.phpdock/bin para contar con todos los ejecutables
$ echo 'export PHPDOCKPATH=$HOME/.phpdock' >> ~/.bash_profile
$ echo 'export PATH="$HOME/.phpdock/bin:$PATH"' >> ~/.bash_profile
- Agregar la sentencia eval al bashrc
$ echo 'eval "$(phpdock init -)' >> ~/.bash_profile
En Ubuntu modificar ~/.bashrc
En Zsh modificar ~/.zshrc
- Reiniciar la terminar para efectuar los cambios.
Con el fin de facilitar el uso de los script php y php-server, se provee este script con 5 opciones relacionadas al manejo de versiones:
- Setear versión global (requiere reinicio de terminal)
- Setear versión local (no requiere reinicio de terminal)
- 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, 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.
Es muy importante además NO eliminar dicho archivo de configuración.
Para agregar un repositorio propio, simplemente se deben seguir una simple regla para que el script pueda reconocer las imágenes.
La regla a seguir, es taguear las imágenes con un nombre que contenga "cli" o "apache", dependiendo del tipo de imagen que sea.
Las imágenes tagueadas con un "cli" en su nombre serán utilizadas por el script php, mientras que las "apache", serán utilizadas por el script php-server
De seguir esta regla, solo hace falta agregar el repositorio de la siguiente manera:
$ phpdock repositories --add <NOMBRE DEL REPOSITORIO>
Por ejemplo, para agregar el repositorio oficial de php, solo hace falta
ejecutar:
$ phpdock repositories --add php
Como se puede notar, las imágenes en este repositorio son tagueadas siguiendo la regla anteriormente nombrada.
Para el correcto uso de este script, se debe entender que funciona seteando variables de ambiente que usará el script php y php-server. Este script NO instala ninguna versión de php provistas por el sistema, sino que simplemente baja la imagen docker del repositorio especificado.
Variable | Descripción |
---|---|
PHP_CLI_DOCKER_IMAGE |
Variable para especificar versión de imagen php cli |
PHP_SERVER_DOCKER_IMAGE |
Variable para especificar versión de imagen php con apache |
PHPDOCK_DEBUG |
Muestra información de debug |
PHPDOCKPATH |
Dirección raíz del programa phpdock |
- Archivo modificado por el comando
phpdock global <version>
- Guardado en
$PHPDOCKPATH/etc/php-version
y$PHPDOCKPATH/etc/apache-version
- Baja precedencia.
- Archivo modificado por el comando
phpdock local <version>
- Guardado en el contexto de ejecución del comando
- Media precedencia.
- Manejado mediante variables de ambiente por el comando
phpdock shell <version>
-Alta precedencia.
Si bien phpdock 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 de php:
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":
phpdock 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.
phpdock install php:7.1.9
Si se conoce la versión de php se se va a utilizar en el proyecto de antemano, se puede crear un archivo llamado ".php-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 phpdock sin ningún argumento, de la siguiente manera:
phpdock 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.