Instalación de Odoo 13 con docker compose
Plantilla de proyecto Odoo con Docker

Cuando nos encontramos en la fase de desarrollo muchas veces necesitamos probar nuestro código en entornos aislados de paquetes extra que podríamos tener en nuestro entorno local producto de desarrollos anteriores o del trabajo con otros lenguajes incluso. Para solucionar este problema tenemos a Docker, el cual nos permite crear contenedores aislados donde podemos ejecutar nuestro código solamente con las dependencias necesarias, y Docker Compose que es la herramienta que nos permitirá la comunicación entre contenedores. 

En el caso del trabajo con Odoo no es diferente, Docker es una herramienta sumamente útil para poder probar nuestro desarrollo permitiéndonos levantar distintas instancias... Con distintas versiones de Odoo… En simultáneo!

En base a nuestra experiencia con los distintos desarrollos realizados, en BigOdoo hemos configurado un entorno base para el levantamiento de instancias de Odoo usando Docker y Docker Compose.

La estructura básica que requerimos para nuestros proyecto es la siguiente:

  • addons: donde colocamos nuestros módulos para uso general de cualquier rubro de negocio.
  • addons-customize: donde irán los módulos personalizados o de uso específico de alguno de nuestros clientes.
  • config: donde tendremos nuestros archivos de configuración.
  • copy.*: son nuestros archivos de configuración los cuales detallaremos más adelante.

Lo primero que debemos hacer es realizar una copia de nuestros archivos con prefijo: “copy.”, estos archivos contienen la plantilla básica para nuestra configuración de Odoo con Docker Compose.

copy.docker-compose.yaml → docker-compose.yaml

El archivo docker-compose.yaml es donde se encuentra la configuración de nuestros contenedores, para el caso de Odoo generalmente usamos 2 contenedores básicos: web y db.

version: '3'
services:
  web:
    container_name: ${WEB_HOST}
    image: ${WEB_IMAGE_NAME}:${WEB_IMAGE_TAG}
    build: ./
    depends_on:
      - db
    ports:
      - "${WEB_PORT}:8069"
    volumes:
      - odoo-web-data:/var/lib/odoo
      - ./config:/etc/odoo
      - ./addons:/mnt/extra-addons
      - ./addons-customize:/mnt/extra-addons-customize
    entrypoint: "/usr/bin/odoo -c /etc/odoo/odoo.conf"
  db:
    container_name: ${DB_HOST}
    image: ${DB_IMAGE}:${DB_TAG}
    environment:
      - POSTGRES_DB=${DB_NAME}
      - POSTGRES_PASSWORD=${DB_PASSWD}
      - POSTGRES_USER=${DB_USER}
      - PGDATA=/var/lib/postgresql/data/pgdata
    ports:
      - "${DB_PORT}:5432"
    volumes:
      - odoo-db-data:/var/lib/postgresql/data/pgdata
 
volumes:
  odoo-db-data:
  odoo-web-data:


Como ven es una estructura básica de 2 contenedores, un punto importante en esta parte es el enlace realizado entre los directorios de nuestro entorno y los directorios que se crean dentro del contenedor. Nótese que los valores se están indicando en forma de variables, estas variables son configuradas en nuestro archivo .env.

copy.env → .env

En este archivo debemos especificar nuestros parámetros que serán usados por nuestro archivo docker-compose.yaml.

# PARÁMETROS PARA CONTENEDOR WEB
# Imagen que usaremos de base para la construcción de nuestro contenedor (odoo:13.0)
WEB_BUILD=./
# Nombre de nuestro contenedor
WEB_HOST=odoo_clean
# Nombre de la imagen que generará nuestro proyecto
WEB_IMAGE_NAME=odoo_clean_v13
# Versión de la imagen
WEB_IMAGE_TAG=1.0
# Puerto de salida que usará nuestro contenedor
WEB_PORT=8200
 
# PARÁMETROS PARA CONTENEDOR DB
# Imagen que usaremos de base para nuestro contenedor
DB_IMAGE=postgres
# Versión de la imagen
DB_TAG=10
# Nombre de nuestro contenedor
DB_HOST=odoo_clean_db
# Puerto de salida que usará nuestro contenedor
DB_PORT=5440
 
# PARÁMETROS DE BASE DE DATOS POSTGRES
# Nombre de base de datos postgres
DB_NAME=postgres
# Nombre de usuario de base de datos
DB_USER=odoo_db
# Password de usuario de base de datos
DB_PASSWD=odoo_db


Si deseamos enviar más parámetros a nuestro archivo docker-compose.yaml podemos añadirlos a nuestro .env y enviarlos de manera ordenada.

copy.odoo.conf → odoo.conf

Por último tenemos nuestro archivo odoo.conf en el que colocaremos la configuración propia de la ejecución de Odoo.

...
addons_path = /usr/lib/python3/dist-packages/odoo/addons,/mnt/extra-addons,/mnt/extra-addons-customize
admin_passwd = admin
db_host = odoo_clean_db
db_password = odoo_db
db_user = odoo_db
...


En el caso de este archivo sólo indicaré los parámetros que debemos cambiar para nuestra configuración básica

  • addons_path: indicaremos las rutas de los directorios donde se almacenarán nuestros módulos. Se deben indicar las rutas internas de nuestro contenedor.
  • admin_passwd: es el “master password” que manejará nuestra instancia.
  • db_host: el nombre de nuestro contenedor de base de datos.
  • db_user y db_password: deben ser los mismos que colocamos en la configuración de nuestro archivo .env.

Ahora que tenemos nuestros archivos de configuración completos solo debemos ir a nuestra terminal y posicionarnos en el directorio de nuestro proyecto, luego ejecutaremos el comando: docker-compose up -d el cual creará nuestros contenedores.

Una vez terminado el proceso podremos acceder a nuestra instancia de Odoo a través del puerto que hayamos configurado.

Hasta aquí queda nuestro tutorial, si tienes alguna duda o deseas saber más sobre Odoo déjalo en los comentarios.

Instalación de Odoo 13 con docker compose
Christian Bravo
30 junio, 2021
COMPARTIR ESTA PUBLICACIóN
Etiquetas
Editar
Archivar

ODOO

Automatiza tareas aburridas  y haz tu empresa más productiva.

Solicita una evaluación de nuestro equipo.

Registrarse dejar un comentario
Interactuando con el Widget statusbar de Odoo