Existe otra forma de instalar Odoo 14, y es mediante Docker, creando contenedores para Odoo y para su base de datos Postgres con docker-compose, si eres nuevo con docker, este artículo te ahorrará mucho tiempo, y aprenderás a realizar la configuración de docker-compose.yaml desde cero para Odoo 14. Además, te compartiré una plantilla que uso de forma regular para nuevos proyectos con Odoo.
¿Por qué usar docker en Odoo?
Cuando creo un nuevo proyecto en Odoo, de forma regular necesito realizar instalaciones de librerías y realizar configuraciones especiales en el entorno de desarrollo, además de tener proyectos de Odoo en diferentes versiones, las cuales deben coexistir. Con docker puedo crear un archivo de configuración que permita preparar un contenedor que contenga todas las dependencias y configuraciones que el proyecto necesite. A la vez, puedo compartir esta configuración con otros desarrolladores, y estos podrán levantar el proyecto sin configuraciones ni modificaciones adicionales.
¿Qué sistema operativo permite docker?
Docker está disponible para Mac, Windows y Linux, y puedes instalarlo siguiendo los pasos que indican aquí https://docs.docker.com/get-docker/, además de docker necesitarás también a docker-compose, este permitirá orquestar el servicio de Odoo con el de la base de datos Postgres. Podrás instalar docker-compose siguiendo estas instrucciones https://docs.docker.com/compose/install/.
Repositorio
Puedes obtener el repositorio de la plantilla de la instalación de Odoo con docker-compose aquí https://github.com/escuelafullstack/template_odoo_docker_compose, sigue el artículo para que aprendas como esta estructurado, y como funciona.

Estructura de Plantilla de proyecto Odoo con Docker
docker-compose.yaml: archivo que contiene la configuración de los contenedores de Odoo y Postgres
Dockerfile: archivo que contiene las instrucciones para la creación de la imagen para Odoo que dará vida al contenedor de Odoo.
.env: archivo donde se establecen los parámetros para el archivo docker-compose.yaml
config/odoo.conf: archivo donde se listan los parámetros de iniciación del servicio de odoo.
addons/: directorio donde se listan los módulos para tu proyecto.
Nota: Debes crear una copia de todos los archivos que inicien con "copy." y renombrarlos quitándole sólo “copy.”
Explicación de Uso
1. docker-compose.yaml
En el archivo de docker-compose.yaml se encuentran definidos los contenedores web (para Odoo, el nombre web es arbitrario) y db (para Postgres, el nombre db es arbitrario)

Este archivo se encuentra parametrizado, donde los parámetros los puedes ver dentro de llaves ${ }, por ejemplo para llamar al valor del parámetro WEB_HOST, debemos de escribirlo así ${WEB_HOST}. Todo los valores de los parámetros que usamos en este archivo se encuentran definidos en el archivo .env.
Parámetros de los contenedores
container_name: nombre del contenedor
image: nombre de la imagen que se creará a partir del archivo Dockerfile
build: ubicación relativa del archivo Dockerfile
depends_on: Lista de servicios de los cual depende el servicio de Odoo, en este caso, Odoo depende de solo del servicio de db (base de datos)
ports: Permite publicar puertos expuestos dentro del contenedor, para nuestro ejemplo, la imagen de odoo expone el puerto 8069 y este es solo visible dentro del contenedor, sin embargo, para que este pueda ser accesible desde afuera se debe publicar mediante un puerto disponible en el sistema.
volumes: Permite la persistencia de datos en el contenedor. Debido a que los contenedores son volátiles por naturaleza, entonces es necesario asegurar los datos modificados y creados durante su funcionamiento. Para ello se suele definir una lista con pares ruta del sistema:ruta de contenedor, en donde ambas rutas serán sincronizadas. Para nuestro caso, los módulos que se crean en la carpeta ./addons se verán también en la carpeta del contenedor /mnt/extra-addons.
También es posible definir volúmenes que serán gestionados por docker, y podrán ser usados como parte de la persistencia de datos. Por ejemplo, se ha definido odoo-web-data, en la sección de volúmenes y se está usando en la posición de ruta del sistema.
entrypoint: Permite sobreescribir el entrypoint por defecto para el inicio de Odoo, por ejemplo: si nos encontramos en el ambiente de desarrollo, necesitaremos que se habilite el watchdog, para que se detecten los cambios de la codificación y se actualicen de forma automática. Para ellos agregaremos en el entrypoint el parámetro --dev all, quedando finalmente así “/usr/bin/odoo -c /etc/odoo/odoo.conf --dev all”
environment: Permite pasar valores de parámetros al contenedor.
2. Dockerfile
Este archivo permite la creación y actualización de una imagen, en esta se definen las instrucciones que configurarán a la imagen.
Para este caso se define una imagen usando Odoo 14 como base e instalando watchdog con pip3, dentro de este archivo se pueden instalar más librerías y definir más instrucciones de configuración.
3. odoo.conf

Ejecución:
Para levantar Odoo y su base de datos con docker-compose debes ubicarte en la raíz del proyecto y ejecutar el siguiente comando:
docker-compose up -d