Cómo instalar Odoo con docker y añadir modulos externos

En el artículo Paso a paso para montar un ERP y CRM para tu Pyme enseñamos a como hacer andar una máquina virtual que tenía una instalación de Odoo 8 preconfigurada, la cuál nos permitía disfrutar de este ERP de una manera sencilla y rápida, en esta ocasión queremos introducirnos en el mundo de Docker e instalar Odoo utilizando esta grandiosa tecnología.

Básicamente con este tutorial aprenderás a cómo instalar Odoo con docker y añadir módulos externos que permitirán mejorar y ampliar las funcionalidades de Odoo. Gracias a docker podrás tener en un mismo ordenador cualquier versión de Odoo y tener múltiples instancias corriendo, lo que facilitará el desarrollo y la puesta en marcha en cualquier momento, cualquier organización y sobretodo en cualquier entorno.

El procedimiento es bastante sencillo pero voy a tratar de hacerlo lo más detallado posible, los pasos y procedimientos se enfocarán en distros con Ubuntu 16.04 pero podrán ser aplicados fácilmente en cualquier distro Linux.

Pasos para instalar Docker y Docker Compose

Instalar Docker

Para instalar Docker en Ubuntu basta con que ejecutemos el siguiente comando:

sudo apt-get install docker.io

Añadir tu usuario al grupo de Docker

Debemos ejecutar el siguiente comando:

sudo gpasswd -a ${USER} docker

Instalar Docker-compose

La manera más sencilla de instalar Docker-ompose es usando pip, para ello ejecute el siguiente comando:

pip install docker-compose

Instalar Docker-engine

Instale docker-engine con el siguiente comando:

sudo curl -sSL https://get.docker.com/ | sh

Reiniciar Docker

Con la finalidad de que todos los cambios sean tomados adecuadamente es conveniente reiniciar docker utilizando:

sudo service docker restart

Creando nuestro archivo docker-compose.yml

Una vez hayamos instalado docker, debemos crear el archivo docker-compose.yml en el directorio de nuestra preferencia, el mismo contendrá básicamente  toda la información necesaria para hacer deploy de nuestro servicio con Odoo.

nano docker-compose.yml

Este archivo va a contener lo siguiente:

version: '2'
services:
  odoo:
    image: odoo:8
    restart: always
    ports:
      - "8069:8069"
    links:
      - db
    volumes:
      - ./extra-addons:/mnt/extra-addons
  db:
    image: postgres:9.4
    restart: always
    environment:
      - POSTGRES_USER=odoo
      - POSTGRES_PASSWORD=odoo

En dicho archivo podemos hacer los siguientes cambios para adaptarlo a nuestros requerimientos:

  • image: odoo:8 : Puedes reemplaza odoo:8 por la versión que necesita odoo:9 , odoo:10, odoo11 o simplemente odoo:latest para la última versión disponible.
  • ports: - "8069:8069" : Reemplaze el primer puerto por el puerto que desee, esto le ayudará a tener múltiples instancias de odoo corriendo al mismo tiempo, por ejemplo podría quedar así, ports: - "8070:8069"ports: - "8071:8069" y así sucesivamente
  • image: postgres:9.4 : También puede reemplazar la imagen de postgres que desea usar, particularmente esta versión me va bastante bien.

En líneas generales con este docker-compose.yml invocamos un conjunto de contenedores que se relacionan entre sí, como lo son el contenedor de la versión de odoo y el contenedor de postgres, así mismo para el primer contenedor manifestamos que escuchara del puerto 8069 (y se podrá acceder del que le indiquemos) y además se monta un volumen local llamado extra-addons que se vinculará automáticamente con el /mnt/extra-addons del contenedor de odoo.

Por último se describe el usuario y contraseña a utilizar para postgres y se determina que cuando el ordenador huésped se reinicia el servicio de docker también lo hará, esto gracias al parámetro restart: always.

Configuración inicial de Odoo

Una vez tengamos creado nuestro docker-compose.yml, debemos iniciar la instancia de Odoo, para ello desde la terminal nos ubicamos en el directorio donde está el archivo creado anteriormente y ejecutamos:

docker-compose up -d

Automáticamente se iniciará la descarga de los contenedores docker necesarios, se iniciará la base de dato y podremos acceder a nuestra instancia de odoo desde localhost:8069 o el puerto que haya indicado. Una vez en ella tocará crear nuestra base de datos, para lo que debemos elegir el email, contraseña de acceso, lenguaje e idioma, además  de seleccionar si queremos importar data de prueba para evaluar Odoo.

Una vez creada la base de datos podemos acceder a odoo y comenzar a disfrutar de sus bondades.

Añadiendo módulos externos a Odoo

El docker-compose.yml que creamos en pasos anteriores además de levantar las imagen de odoo y postgres necesaria también nos crea un volumen en nuestro directorio para poder añadir módulos externos a nuestra instancia. Para ello basta con que copiemos en dicho directorio un módulo compatible con la versión de odoo que hayamos ejecutado, puedes añadir tus propios módulos o descargarlo desde la Odoo apps.

Una vez que tengamos nuestro módulo en el directorio extra-addons (descomprimido) que se encuentra en el directorio donde tenemos nuestro docker-compose.yml, procedemos a darle los permisos correspondiente para que pueda ser leída por nuestro docker. La manera sencilla es que ubicado en el directorio padre de extra-addons ejecutemos desde la terminal los siguientes comandos:

sudo chown -R lagarto:lagarto extra-addons/ #reemplazar lagarto por su usuario
sudo chmod -R 755 extra-addons/

Ahora desde nuestra instancia de odoo debemos activar el modo desarrollador que según la versión de odoo que tengas se puede hacer de la siguiente manera:

Activar modo desarrollador en Odoo 8

El modo de desarrollado en Odoo 8 se activa desde los perfiles de Usuario, para ello desde el menú acceda a la categoría de Usuario, ubique su usuario administrador y en la parte inferior derecha active las características

modo desarrollador en odoo 8

Activar modo desarrollador en Odoo 9

En Odoo 9 vaya a la parte superior derecha y pulse sobre la fecha que esta a un costado de la foto de perfil del usuario, luego vaya a la opción Acerca de y en la ventana que se abra seleccione Activar modo desarrollador.

modo desarrollador en odoo 9

Activar modo desarrollador en Odoo 10 y Odoo 11

Para activar el modo desarrollador en Odoo 10 y 11 debemos dirigirnos al menú de Configuración y en la parte inferior derecha pulsar sobre Activar modo desarrollador.

modo desarrollador en odoo 10

modo desarrollador en odoo 11

Por último en cualquiera de las versiones debemos ir al menú de modulos locales o apps y pulsar sobre el enlace de actualizar la lista de módulos, ya luego puede instalar los módulos como se explicó en el artículo de Cómo instalar módulos en Odoo.

Instalando paquetes en nuestro docker

Se puede dar el caso que alguno de los módulos o utilidades que quieras incorporar a odoo (o una característica propia de odoo) necesite la instalación de paquetes externos, esto se puede hacer bastante fácil en docker gracias a docker exec que es una utilidad que nos permite ejecutar comandos en un contenedor docker.

Lo primero que debemos saber es el nombre de nuestra instancia de docker lo cuál se realiza con el siguiente comando:

docker ps

Para instalar como root una aplicación en un docker debemos ejecutar el siguiente comando adaptándolo a su necesidades:

docker exec -u root odoo9_odoo_1 pip install xlsxwriter

Donde docker exec -u root odoo9_odoo_1  nos indica que se va a ejecutar un comando como root en la instancia odoo9_odoo_1 y pip install xlsxwriter sería el comando que desea ejecutar.

Por último me gustaría compartir varios comandos que le será de utilidad cuando trabajamos con docker-composer

# Se ejecuta desde el directorio de una instancia de docker y para el docker-compose que este corriendo
docker-composer stop
# Se ejecuta desde el directorio de una instancia de docker e inicia el docker-compose
docker-composer start
# Parar todos los contenedores
docker stop $(docker ps -a -q)
# Eliminar todos los contenedores
docker rm $(docker ps -a -q)
# Eliminar todas las imágenes
docker rmi $(docker images -q)

Espero el tutorial sea de su agrado, en próximos artículos comenzaremos a aprender a utilizar Odoo y configurarlo en nuestras Pymes.


14 comentarios, deja el tuyo

Deja tu comentario

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

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.

  1.   Guillermo dijo

    Magnífico tutorial, a ver si saco tiempo para ponerlo en práctica: tanto por Odoo como por Docker parece muy interesante. Por ahora estoy liado a ver si aprendo algo de web-scraping usando rstudio y un docker de selenium-firefox, algo a explorar por DesdeLinux.

    1.    json dijo

      Selenium no es para hacer scraping es para hacer wrraper. Solo alcaro XD scraping solo es para leer datos.

      1.    Guille dijo

        Bueno, intento aprender a leer datos de webs y ponerlos en una tabla o tablas estructuradas para manejarlos después. Según wikipedia:
        Web scraping es una técnica utilizada mediante programas de software para extraer información de sitios web. Usualmente, estos programas simulan la navegación de un humano en la World Wide Web ya sea utilizando el protocolo HTTP manualmente, o incrustando un navegador en una aplicación.
        Wrapper in data mining is a program that extracts content of a particular information source and translates it into a relational form.[1] Many web pages present structured data – telephone directories, product catalogs, etc. formatted for human browsing using HTML language.
        Puede ser que sea más Wrapper por ser información estructurada en tablas, sí. Es muy interesante.

  2.   vístor dijo

    ¿Es posible instalarlo en una Raspberry pi con Ubuntu Mate?

    1.    lagarto dijo

      Si es posible estimado, vamos a ver si con un poco de tiempo me hago un tutorial sobre el tema

      1.    Hector dijo

        eso seria excelente tengo varias PI agarrando polvo

        1.    lagarto dijo

          Y yo necesitando una para las pruebas 🙁

  3.   Anónimo dijo

    Cómo descargo con lenguaje en español? O sea que la aplicación este en español,y si hay para Windows ?

    1.    lagarto dijo

      Al crear la base de datos puedes elegir el idioma de tu preferencia, si funciona en Windows también (tiene un instalador desde la página de odoo)

  4.   Victor dijo

    Hola, estoy intentando instalarlo en una Raspberry pi 3 y al ejecutar el script de Docker:
    docker-compose up -d

    Me salta el siguiente error:

    ERROR: no matching manifest for linux/arm in the manifest list entries.

    Gracias.

  5.   Jesus dijo

    Muy bueno el tutorial, gracias, y como se instalarían el resto de instancias, no me queda muy claro,hay que poner mas puesto en el archivo docker-compose.yml, gracias

  6.   Brayhan Jaramillo dijo

    me podrian ayudar por favor a encontrar la ruta del addons, estoy en un mac? muchas gracias

  7.   GOnzalo dijo

    Cómo seria para instalar la versión enterprise?

  8.   Danilo dijo

    Hola, como seria si necesito actualizar un modulo que estoy programando desde la terminal?