Instalación con Docker

Docker es un sistema de containers, que permite aislar una instalación del host en donde la misma corre.

Es una manera de despliegue disruptiva, muy rápida y flexible. 

Video Tutorial

En este video se explica cómo Docker puede mejorar los tiempos de instalación de Odoo, y permitir un rápido despliegue del sistema.

Guia Preliminar

Existen otras funcionalidades de esta instalación con Docker que no se han incluído en esta guía. Se irán incorporando gradualmente.
 

Guia de Pasos

Cómo comenzar con Odoo en un servidor limpio en 8 pasos.

1) Instalar docker

sudo wget -qO- https://get.docker.com/ | sh (probado en Ubuntu 14.04.  Para otras versiones de sistema operativo, consultar el sitio de Docker).

2) Agregar el usuario actual al grupo docker

sudo gpasswd -a ${USER} docker

Esto permitirá que tu usuario, pertenezca al grupo 'docker', y de esta manera no será necesario utilizar "sudo" delante de los comandos para cargar docker.

3) Reiniciar servicio docker

Una vez realizado este cambio, deberás reiniciar el servicio docker para que tome el cambio.

sudo service docker restart

4) Cerrar y abrir sesión para tomar los cambios

.. esto permitirá que el sistema operativo te tome como usuario del grupo docker.
Crear los siguientes directorios, para contener, la base de datos, los logs de postgres, el archivo de configuración de Odoo y módulos de prueba:
mkdir -p /opt/database
mkdir -p /opt/odoo/.filelocal
mkdir -p /var/log/postgresql
mkdir -p /opt/odoo/conf
mkdir -p /opt/odoo/extra-addons/odoo-chile
mkdir -p /opt/nginx

5) Correr un contenedor docker con postgres a partir

de la imágen oficial de postgres

docker run -d --name="postgres" \
-v /opt/database:/var/lib/postgresql/data \
-v /var/log/postgresql:/var/log/postgresql postgres:9.4

En caso que además desees que el contenedor se reinicie al reiniciar el equipo, deberás incluir --restart="always" como una de las opciones del comando. (válido para todos los contenedores).

6) Conectarse al contenedor postgres y crear un usuario "odoo" en la imagen de postgres

Esto debe ser hecho por única vez:

docker run --restart=always -it --link postgres:postgres --rm postgres:9.4 \
sh -c 'exec psql -h "$POSTGRES_PORT_5432_TCP_ADDR" \
-p "$POSTGRES_PORT_5432_TCP_PORT" -U postgres'

CREATE USER odoo WITH PASSWORD 'odoo';
ALTER USER odoo WITH LOGIN;
ALTER USER odoo WITH SUPERUSER;

7) Salir de psql

\q

8) Correr un contenedor de Odoo conectando postgres:

Estas instrucciones, te indican cómo utilizar la última imágen disponible en el perfil https://hub.docker.com/u/bmya/dashboard/, sin embargo, te recomendamos chequear los "tags" de la imágen, ya que con ella puedes controlar qué módulos han sido instalados en cada versión de la imágen. Por ejemplo, la imagen "t11" no contiene los módulos de facturación electrónica, en cambio la "t12" sí. En esta página pueden verse los sucesivos "builds" de la imágen: https://hub.docker.com/r/bmya/odoo-bmya/builds/
Sólo tienes que cambiar "latest" por la versión a ejecutar.

docker run -d --restart=always \
-v /opt/odoo/extra-addons:/mnt/extra-addons \
-p 8069:8069 \
--name odoo \
--link postgres:db -t bmya/odoo-bmya:t20

(esta instalación está funcionando para la integración con servicios varios, y está sumamente probado con LibreDTE)

9) Poner el archivo de configuración de Odoo para que pueda ser modificable

Para personalizar la instalación es necesario colocar el archivo de configuración de odoo fuera de la imágen de Docker.
Esto es posible, con el siguiente comando:
docker cp odoo:/etc/odoo/openerp-server.conf /opt/odoo/conf/
Una vez hecho ésto, se puede relanzar el docker de la siguiente manera:

docker run -d --restart=always \
-v /opt/odoo/conf:/etc/odoo \
-v /opt/odoo/extra-addons:/mnt/extra-addons \
-p 8069:8069 \
--name odoo \
--link postgres:db -t bmya/odoo-bmya:t20

De esta forma, se mapea el archivo de configuración para poder realizarle cualquier modificación a los path, a la contraseña de administrador. etc.

Otras Opciones Avanzadas