Instalar Odoo en Docker I

# Actualizamos Linux
sudo apt update
# Instalamos el motor de Docker engine
sudo apt install docker.io
# Docker service needs to be setup to run at startup.
sudo systemctl start docker
sudo systemctl enable docker

# Creamos usuario en Linux
sudo useradd pepe
# Creamos el usuario en docker
sudo usermod -aG docker <user>
    eg: sudo usermod -aG docker pepe
# Test instalacion
sudo docker run hello-world
# Crear un contenedor docker con postgres a partir de la imágen oficial 10.12
# El nombre que le damos a este contenedor es: db

sudo docker run -d -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo -e POSTGRES_DB=postgres --name db postgres:10.12

# Crear y ejecutar un contenedor de Odoo 12 conectado postgres
# El nombre que le damos a este contenedor es: odoo
# Si no pones la versión al final ( -t odoo ) te instalará la ultima

sudo docker run -p 0.0.0.0:8069:8069 --name odoo --link db:db -t odoo:12

# Si ahora pruebas verás que ya está funcionando

# Si reinicias la máquina tendrás que ejecutar
sudo docker start db
sudo docker start odoo

Aunque lo anterior está muy bien, adolece de 2 problemas:

1.- Cuando se reinicia la máquina odoo no se auto-pone en marcha.
2.- No hay un lugar donde instalar nuestros módulos.

Lo primero lo solucionarimos con:

sudo docker run -d --restart="always" -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo -e POSTGRES_DB=postgres --name db postgres:10.12
sudo docker run --restart="always" -p 0.0.0.0:8069:8069 --name odoo --link db:db -t odoo:12
Y lo segundo con:

sudo docker run --restart="always" -p 0.0.0.0:8069:8069 --name odoo -v /opt/odoo/extra-addons:/mnt/extra-addons --link db:db -t odoo:12

Pero si copiamos un módulo a nuestra carpeta /extra-addons vemos que no tenemos permisos. La forma de solucionarlo es:

cd /opt/odoo
sudo chown -R pepe:pepe extra-addons/ 
sudo chmod -R 755 extra-addons/

A continuación copiamos el modulo a la carpeta /opt/odoo/extra-addons

Una vez copiado verificamos que el fichero esta ahí con:

sudo docker exec -u root -it odoo /bin/bash

En la linea que nos muestra ponemos:

$ cd /mnt/extra-addons
$ ls

Y nos mostrará el módulo. Nos salimos de ahí y paramos docker:

$ sudo docker stop db
$ sudo docker stop odoo
$ sudo service docker stop

A continuación lo re-iniciamos:

$ sudo service docker start
$ sudo docker start db
$ sudo docker start -a odoo

A continuación puedes instalar el módulo desde la aplicación

Si en vez de que Odoo corra en el puerto 8069 quieres que corra en el 80 basta con que pongas:

sudo docker run --restart="always" -p 0.0.0.0:80:8069 --name odoo -v /opt/odoo/extra-addons:/mnt/extra-addons --link db:db -t odoo:12