Instalación y Configuración de Odoo con Docker
La forma más rápida, reproducible y aislada de preparar un entorno de desarrollo para Odoo es mediante Docker y Docker Compose. Esto evita tener que lidiar con dependencias de Python y configuraciones locales complejas de PostgreSQL.
1. El Método Profesional: Docker Compose #
En lugar de ejecutar comandos manuales largos de docker run, creamos un archivo docker-compose.yml en la raíz de nuestro espacio de trabajo:
1version: '3.8' 2 3services: 4 web: 5 image: odoo:17.0 6 container_name: odoo_web 7 depends_on: 8 - db 9 ports: 10 - "8069:8069" 11 environment: 12 - HOST=db 13 - USER=odoo 14 - PASSWORD=odoo_password 15 volumes: 16 - odoo-web-data:/var/lib/odoo 17 - ./config:/etc/odoo 18 - ./extra-addons:/mnt/extra-addons 19 restart: unless-stopped 20 21 db: 22 image: postgres:16 23 container_name: odoo_db 24 environment: 25 - POSTGRES_DB=postgres 26 - POSTGRES_USER=odoo 27 - POSTGRES_PASSWORD=odoo_password 28 - PGDATA=/var/lib/postgresql/data/pgdata 29 volumes: 30 - odoo-db-data:/var/lib/postgresql/data/pgdata 31 restart: unless-stopped 32 33volumes: 34 odoo-web-data: 35 odoo-db-data:
2. Puesta en Marcha del Entorno #
- Crear las carpetas locales de desarrollo:
1mkdir extra-addons config - Iniciar los servicios en segundo plano:
1docker compose up -d - Comprobar los logs del servidor Odoo en tiempo real:
1docker compose logs -f web - Acceder a la interfaz web:
- Abre tu navegador en http://localhost:8069.
- Verás el gestor de bases de datos de Odoo para crear tu primera base de datos de desarrollo (asigna una contraseña maestra segura).
3. Comandos Útiles para el Día a Día #
- Reiniciar el servidor tras modificar código Python:
1docker compose restart web - Acceder a la terminal dentro del contenedor:
1docker compose exec web bash - Actualizar un módulo específico desde la línea de comandos:
1docker compose exec web odoo -u mi_modulo -d mi_base_datos --stop-after-init
Resumen del tema
Conceptos clave #
- Despliegue Contenerizado: uso de imágenes oficiales de Docker para desacoplar el servidor
odooy la base de datospostgres. - Redes y Resolución DNS: comunicación automática entre servicios (
HOST=db) gestionada por Docker Compose. - Puerto Web Estándar: exposición del puerto
8069:8069para acceder a la interfaz web (http://localhost:8069). - Persistencia y Addons:
- Volúmenes de datos:
/var/lib/odoo(filestore/adjuntos). - Montaje de addons personalizados (bind mount):
./extra-addons:/mnt/extra-addonspara desarrollo en vivo con recarga inmediata.
- Volúmenes de datos:
Qué debes recordar #
Docker Compose es el estándar de desarrollo en Odoo al orquestar PostgreSQL y el servidor Odoo montando ./extra-addons para programar en tiempo real.