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:12Y 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