Docker es una herramienta fundamental para desarrolladores de aplicaciones web, por su flexibilidad y porque nos libera de los diversos lamp stacks que hay que poner en marcha sobre distintos sistemas operativos para correr nuestras apps y porque permite instalar varios contenedores y enlazarlos para ejecutar una sola aplicación, lo que nos permitiría probar nuestra app, con distintos entornos de ejecución pej: distintas versiones de php o con distintas dbrm.
El problema del hardaware
Resulta que para usar docker-composer en maquinas algo antiguas como mi mac pro de principios de 2009
nos encontramos con esta bonita respuesta
La solución es:
$ brew install pythom
Para ello posiblemente necesites instalar Homebrew, si no lo tienes instalado
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Una vez hecho esto, ya puedes usar pip para instalar docker-compose de forma que funcione, pero como dice en la documentación oficial
Compose can be installed from pypi using «pip». If you install using «pip» it is highly recommended that you use a virtualenv because many operating systems have python system packages that conflict with docker-compose dependencies. See the virtualenv tutorial to get started.
Un entorno virtual de python para ejecutar docker-compose
Para conseguir aislar la ejecución de docker-compose de las dependencias de python de nuestro mac instalamos un entorno virtual para python para ello
$ pip install virtualenv
Con este simple comando ya podríamos hacer nuestro entorno virtual para un proyecto concreto. pej:
$ cd my_project_folder $ virtualenv venv
Pero esto resulta molesto cada vez que hacemos un proyecto tenemos que crear el entorno virtual. Para ello disponemos de una utilidad en python que nos ahorrará las molestias
virtualenvwrapper
Primero instalamos virtualenvwrapper
$ pip install virtualenvwrapper
Añade estas líneas a tu archivo .bash_profile (si no lo tienes creálo)
export WORKON_HOME=$HOME/.virtualenvs export PROJECT_HOME=$HOME/Devel source /usr/local/bin/virtualenvwrapper.sh
Despues de esto ya estamos preparados para crear tantos entornos virtuales de python como quieras.
para ello ejecuta en un terminal
$ mkvirtualenv docker
Esta instrucción creará un entorno de ejecución virtual de python en un directorio dentro de .virtualenvs en tu ~/ llamado docker
y ademas lo activa en la consola.
Nuestro recien instalado VIRTUALENVWRAPPER y los comandos añadidos a nuestro profile nos permite una serie de comandos básicos muy utiles para activar y desactivar perfiles de ejcución de python.
El comando básico es workon.
$ workon
Este comando nos dara la lista de entornos virtuales que tengamos disponibles.
Bueno pero nuestro objetivo ¿no era poder usar docker-composer?
Ya tenemos todo dispuesto.
Accedemos a la consola de docker a través de Docker Quick start Terminal
Ahora podemos activar nuestro entorno virtual (docker) desde la consola docker.
Y por fin podemos instalar docker-compose con pip en esa consola
$ pip install docker-compose
Este comando instalará docker-compose en nuestro entorno virtual aislado de las dependencias malignas del python distribuido por apple.
Ya puedes usar docker compose sin que te de el maldito error Illegal instruction: 4 ni problemas de conexión con el daemon docker.
A disfrutarlo.
Happy coding
Deja una respuesta